Re: [PATCH] Improve performance of list::reverse

2016-10-10 Thread Elliot Goodrich
I haven't yet but I will try and sort it out tomorrow. If we're replacing the current method with one that takes a size parameter when _GLIBCXX_USE_CXX11_ABI is defined, is this going to cause any issues with ABI compatibility? If not, then I agree that we should go with the #if version. On 10 Oc

Re: [PATCH] Improve performance of list::reverse

2016-10-10 Thread Jonathan Wakely
On 09/10/16 16:23 +0100, Elliot Goodrich wrote: Hi, If we unroll the loop so that we iterate both forwards and backwards, we can take advantage of memory-level parallelism when chasing pointers. This means that reverse takes 35% less time when nodes are randomly scattered in memory and about the

[PATCH] Improve performance of list::reverse

2016-10-09 Thread Elliot Goodrich
Hi, If we unroll the loop so that we iterate both forwards and backwards, we can take advantage of memory-level parallelism when chasing pointers. This means that reverse takes 35% less time when nodes are randomly scattered in memory and about the same time if nodes are contiguous. Further, as o