volatile access optimization (C++ / x86_64)
Paul_Koning@Dell.com
Paul_Koning@Dell.com
Mon Jan 5 21:41:00 GMT 2015
> On Jan 5, 2015, at 4:11 PM, DJ Delorie <dj@redhat.com> wrote:
>
>
>> To try to generalize from that: it looks like the operating
>> principle is that an insn that expands into multiple references to a
>> given operand isn’t volatile-safe, but one where there is only a
>> single reference is safe?
>
> No, if the expanded list of insns does "what the standard says, no
> more, no less" as far as memory accesses go, it's OK. Many of the MSP
> macros do not access memory in a volatile-safe way. Some do.
>
> If you have a single opcode that isn't volatile-safe (for example, a
> string operation that's interruptable and restartable), that wouldn't
> be OK despite being a single insn.
Ok, but the converse — if the general_operand is accessed by more than one instruction, it is not safe — is correct, right?
>
> So it's kinda mechanical, but not always.
More information about the Gcc
mailing list