I’m writing the backend of llvm based on Clang-9. Now I need to add the memoperand for async_load_u32 instruction. This instruction need to load mem from shared mem and store it to the local mem. But I find that the struct of MemSDNode only supports one MMO only:
class MemSDNode : public SDNode {
private:
// VT of in-memory value.
EVT MemoryVT;
protected:
/// Memory reference information.
MachineMemOperand *MMO;
// ...
};
Is there any methods to support multi mmos without changing too much code?