[cfe-dev] [libcxx] optimizing shared_ptr atomics in destructors
David Chisnall via cfe-dev
cfe-dev at lists.llvm.org
Tue Jul 19 01:52:39 PDT 2016
On 18 Jul 2016, at 19:09, Craig, Ben via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> ldr r1, [r0] @bcraig note: it would be nice to combine this load with the ldrex
I believe that you will see this transformation if you do a non-atomic increment on the loaded value and then a weak compare and swap to write the result back (with a back branch to retry if it failed). I’m not 100% sure though, because this will leave a ldrex that isn’t paired with a store / release in the case that the loaded value is 0 and some ARM cores don’t like it when that happens.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3719 bytes
Desc: not available
More information about the cfe-dev