[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
GlobalISEL.
Philip
More information about the llvm-dev
mailing list