On 27/12/14 18:04, Matt Godbolt wrote: > On Sat, Dec 27, 2014 at 11:57 AM, Andrew Haley <a...@redhat.com> wrote:
>> if you don't need an atomic access, why do you care that it uses a >> read-modify-write instruction instead of three instructions? Is it >> faster? Have you measured it? Is it so much faster that it's >> critical for your application? > > Good point. No; I've yet to measure it but I will. I'll be honest: my > instinct is that really it won't make a measurable difference. From a > microarchitectural point of view it devolves to almost exactly the > same set of micro-operations (barring the duplicate memory address > calculation). It does encode to a longer instruction stream (15 bytes > vs 7 bytes), so there's an argument it puts more pressure than needed > on the i-cache. But honestly, it's more from an aesthetic point of > view I prefer the increment. Aha! I get it now. I know that it's not really necessary to know a questioner's motivation for a question like this: it makes no difference to the answer. But you really had me mystified because I was assuming that there had to be a practical reason for all this. > Also, it's always nice to understand why particular optimisations > aren't performed by the compiler from a correctness point of view! :) Sure. Well, in this case you now know: it's a bug! But one that it's fairly hard to care deeply about, although it might get fixed now. Andrew.