[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?

-Krzysztof

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



More information about the llvm-dev mailing list