This is the mail archive of the
mailing list for the GCC project.
Re: volatile access optimization (C++ / x86_64)
- From: <Paul_Koning at Dell dot com>
- To: <aph at redhat dot com>
- Cc: <matt at godbolt dot org>, <gcc at gcc dot gnu dot org>
- Date: Sat, 27 Dec 2014 18:49:30 +0000
- Subject: Re: volatile access optimization (C++ / x86_64)
- Authentication-results: sourceware.org; auth=none
- References: <CAFWXXN3quEdSnaoWuPcQn2k-F99Yaw+6=NqgFgcu9ABpv5ZD3Q at mail dot gmail dot com> <549DE09B dot 8060502 at redhat dot com> <CAFWXXN0V9yvNTpcz54DCK237KPURQs1XkaHcQZK5Eoj_VCj0OA at mail dot gmail dot com> <549DED1B dot 3070006 at redhat dot com> <CAFWXXN13eKJVP0z6V6DEVwoxZtqo4Z0nnQA2YFd9+4UWJxrnVg at mail dot gmail dot com> <549EF314 dot 5060305 at redhat dot com> <CAFWXXN03T7dT8FGNgnaZf9Kq+hZu4e6pZqEWRb3BQsSjrzRCLw at mail dot gmail dot com> <549EFD1E dot 5090000 at redhat dot com>
> On Dec 27, 2014, at 1:40 PM, Andrew Haley <firstname.lastname@example.org> wrote:
> On 27/12/14 18:04, Matt Godbolt wrote:
>> On Sat, Dec 27, 2014 at 11:57 AM, Andrew Haley <email@example.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.
Letâs not forget -Os. Most people optimize for speed, but optimization for size is needed at times and this is the sort of issue that affects it directly.