[llvm-dev] GlobalISEL, and MachineMemOperands?

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 1 16:35:49 PST 2019

Looking through the X86 GlobalISEL code for selecting loads and stores, 
I'm not seeing the creation of the MachineMemOperands I'd expect to see 
and do see being generated by SelectionDAG.  Is this simply an 
oversight, or is there some aspect of the new design which pushes us 
away from MMOs?

Various parts of the machine instruction level optimization passes use 
the existence and contents of an MMO for optimization legality checks.  
As a simple example, we won't fold a load unless we can examine it's MMO 
to ensure the access is not volatile.  At the moment, this would seem to 
mean that GlobalISEL generated code can't have load folding done by the 
PeepholeOptimizer.  Unless I'm missing something?  I'm very new to 


More information about the llvm-dev mailing list