[GlobalISel] MachineMemOperands for generic memory instructions

Hi,

Will the generic memory instructions (e.g. G_LOAD, G_STORE) still have
a MachineMemOperand as the last operand? Or was there a plan to use
something else?

It seems like we can at least re-use the MachineMemOperand interface,
as long as we create a sub-class that does not depend on a reference
to the original LLVM IR memory instruction.

-Tom

Hi Tom,

I haven’t looked into those aspects yet, but here are my initial thoughts.

Hi,

Will the generic memory instructions (e.g. G_LOAD, G_STORE) still have
a MachineMemOperand as the last operand?

Ultimately, no, see my next answer.

Or was there a plan to use
something else?

The plan would be to have this information attached to the instruction, not an additional operand.
This would probably live into the description of the generic instruction. The description already needs to evolve for generic instruction to accommodate the type of the instruction and other things like fast maths flags and such.
https://llvm.org/bugs/show_bug.cgi?id=26576

It seems like we can at least re-use the MachineMemOperand interface,
as long as we create a sub-class that does not depend on a reference
to the original LLVM IR memory instruction.

Since you have started to look into that, do you see any problem with what I am suggesting?

Cheers,
-Quentin