[llvm] [RISCV] Rematerialize load (PR #73924)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 20:27:31 PST 2023
================
@@ -1567,6 +1573,37 @@ bool RISCVInstrInfo::isAsCheapAsAMove(const MachineInstr &MI) const {
return MI.isAsCheapAsAMove();
}
+bool RISCVInstrInfo::isReallyTriviallyReMaterializable(
+ const MachineInstr &MI) const {
+
+ if (TargetInstrInfo::isReallyTriviallyReMaterializable(MI))
+ return true;
+
+ if (MI.mayLoad() && AggressiveLoadRemat) {
+ const MachineFunction &MF = *MI.getMF();
+ const MachineRegisterInfo &MRI = MF.getRegInfo();
+
+ const MachineOperand &Dest = MI.getOperand(0);
+ if (!MRI.hasOneUse(Dest.getReg()))
+ return false;
+
+ MachineInstr *UseMI = &*MRI.use_instr_begin(Dest.getReg());
+ MachineBasicBlock::const_iterator DefItr(MI);
+ MachineBasicBlock::const_iterator UseItr(UseMI);
+ const MachineBasicBlock *MBB = nullptr;
----------------
topperc wrote:
Why is this initialized to nullptr instead of MI.getParent()?
https://github.com/llvm/llvm-project/pull/73924
More information about the llvm-commits
mailing list