[patch] libstdc++/66742 use allocators correctly in list::sort()
Daniel Krügler
daniel.kruegler@gmail.com
Fri Jul 3 16:56:00 GMT 2015
2015-07-03 17:51 GMT+02:00 Jonathan Wakely <jwakely@redhat.com>:
> As well as reducing the number of lists we construct when sorting this
> also allows us to range-check and ensure we don't overflow the
> fixed-size array (we now get an exception if that happens, although
> that's probably not possible even on a 64-bit machine).
>
> Unfortunately this seems to hurt performance, presumably the extra
> indirections to the _ListSOrtBuf rather than just an array of lists
> confuse the optimisers.
>
> Does anyone see any better solution to this? (other than rewriting the
> whole sort function, which I think has been proposed)
I have not yet thought about better solutions, but:
- Isn't it necessary to cope with possibly final allocators when
unconditionally forming the derived member class
struct _Impl : allocator_type
? Maybe you could just define that as a non-deriving aggregate?
- Daniel
More information about the Libstdc++
mailing list