[LLVMdev] Loads/Stores and MachineMemOperand

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Dec 12 15:54:12 PST 2012


On Dec 11, 2012, at 11:00 AM, Justin Holewinski <justin.holewinski at gmail.com> wrote:

> I want to get some clarification on the exact semantics of the MachineMemOperand attached to memory-touching instructions.  From what I understand, a MemSDNode has an associated MachineMemOperand and a MachineInstr can have zero or more attached MachineMemOperands.  

The MMOs provide extra, optional information that late optimizers may use to combine or reorder memory operations.

In particular, stripping all MMOs does not break the semantics of the program, it just removes some opportunities for optimization.

A load or store without an MMO should be treated as if it were volatile.

This means you probably can't use MMOs for reliable address space information.

/jakob




More information about the llvm-dev mailing list