https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83938

François Dumont <fdumont at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from François Dumont <fdumont at gcc dot gnu.org> ---
Git commit for this PR hasn't been detected so here it is:

commit ba23e045fcb820e8d32dee361c4d048604d8d599
Author: François Dumont <fdum...@gcc.gnu.org>
Date:   Wed Jan 22 17:55:54 2020 +0100

    libstdc++: Limit memory allocation in stable_sort/inplace_merge (PR 83938)

    Reduce memory allocation in stable_sort/inplace_merge algorithms to what is
needed
    by the implementation.

    Co-authored-by: John Chang  <john.ch...@samba.tv>

    libstdc++-v3/ChangeLog:

            PR libstdc++/83938
            * include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len
            computation in the loop to avoid truncation.
            * include/bits/stl_algo.h:
            (__inplace_merge): Take temporary buffer length from smallest
range.
            (__stable_sort): Limit temporary buffer length.
            * testsuite/25_algorithms/inplace_merge/1.cc (test4): New.
            * testsuite/performance/25_algorithms/stable_sort.cc: Test
stable_sort
            under different heap memory conditions.
            * testsuite/performance/25_algorithms/inplace_merge.cc: New test.

The added performance test didn't show any enhancement for the algo change so
only the innefficiency has been fixed.

Reply via email to