Previously it copied over MachineMemOperands verbatim which caused MOV32rm to
have store flags set, and MOV32mr to have load flags set. This fixes some assertions
being thrown with EXPENSIVE_CHECKS on.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 33327 Build 33326: arc lint + arc unit
Event Timeline
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
28679–28688 | I'm not happy with this: It discards any volatile/other flags and seems wrong. Is there a better way of copying over the MMO but turning off specific flags? |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
28679–28688 | Looks like X86InstrInfo also clones MMOs a couple of times this way, I don't feel so bad now. |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
28689–28690 | Would it be worth adding a new getMachineMemOperand version that just updates the flags? |
Comment Actions
LGTM - please pre-commit the MachineFunction.h/MachineFunction.cpp/X86InstrInfo.cpp change and then this patch's X86ISelLowering.cpp change.
I'm not happy with this: It discards any volatile/other flags and seems wrong. Is there a better way of copying over the MMO but turning off specific flags?