[LLVMdev] Inline asm bug?

Krzysztof Parzyszek kparzysz at codeaurora.org
Tue Jan 8 14:17:11 PST 2013

On 1/8/2013 3:52 PM, Eli Friedman wrote:
>  From gcc docs: "If your assembler instructions access memory in an
> unpredictable fashion, add `memory' to the list of clobbered
> registers. This causes GCC to not keep memory values cached in
> registers across the assembler instruction and not optimize stores or
> loads to that memory. You also should add the volatile keyword if the
> memory affected is not listed in the inputs or outputs of the asm, as
> the `memory' clobber does not count as a side-effect of the asm. "

Yes, I've read this.  It's not a very precise description.  If I need to 
make the asm "volatile", then why would I need to put "memory" in the 
clobber list?  Shouldn't "asm volatile" be sufficient by itself?  If so, 
then what's the point of having the clobber "memory" in the first place?


Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation

More information about the llvm-dev mailing list