This is the mail archive of the
mailing list for the GCC project.
Re: volatile access optimization (C++ / x86_64)
- From: NightStrike <nightstrike at gmail dot com>
- To: DJ Delorie <dj at redhat dot com>
- Cc: Matt Godbolt <matt at godbolt dot org>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Mon, 5 Jan 2015 13:00:36 -0500
- 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> <xnvbkldsgz dot fsf at greed dot delorie dot com>
On Mon, Jan 5, 2015 at 12:53 PM, DJ Delorie <firstname.lastname@example.org> wrote:
> Matt Godbolt <email@example.com> writes:
>> GCC's code generation uses a "load; add; store" for volatiles, instead
>> of a single "add 1, [metric]".
> GCC doesn't know if a target's load/add/store patterns are
> volatile-safe, so it must avoid them. There are a few targets that have
> been audited for volatile-safe-ness such that gcc *can* use the combined
> load/add/store when the backend says it's OK. x86 is not yet one of
> those targets.
Really? I thought x86 was one of the few that were known to be ok
here. What is involved with the auditing?