[llvm] [GISel] Fix #77762: extend correct source registers in combiner helper rule extend_through_phis (PR #77765)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 11 05:30:20 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-globalisel
Author: Emil J (ekliptik)
<details>
<summary>Changes</summary>
Since we already know which register we want to extend, we don't have to ask its defining MI about it
---
Full diff: https://github.com/llvm/llvm-project/pull/77765.diff
1 Files Affected:
- (modified) llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (+3-2)
``````````diff
diff --git a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
index fc2793bd7a133d..866774bda3fb14 100644
--- a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
@@ -3939,7 +3939,8 @@ void CombinerHelper::applyExtendThroughPhis(MachineInstr &MI,
SmallSetVector<MachineInstr *, 8> SrcMIs;
SmallDenseMap<MachineInstr *, MachineInstr *, 8> OldToNewSrcMap;
for (unsigned SrcIdx = 1; SrcIdx < MI.getNumOperands(); SrcIdx += 2) {
- auto *SrcMI = MRI.getVRegDef(MI.getOperand(SrcIdx).getReg());
+ auto SrcReg = MI.getOperand(SrcIdx).getReg();
+ auto *SrcMI = MRI.getVRegDef(SrcReg);
if (!SrcMIs.insert(SrcMI))
continue;
@@ -3952,7 +3953,7 @@ void CombinerHelper::applyExtendThroughPhis(MachineInstr &MI,
Builder.setInsertPt(*SrcMI->getParent(), InsertPt);
Builder.setDebugLoc(MI.getDebugLoc());
auto NewExt = Builder.buildExtOrTrunc(ExtMI->getOpcode(), ExtTy,
- SrcMI->getOperand(0).getReg());
+ SrcReg);
OldToNewSrcMap[SrcMI] = NewExt;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/77765
More information about the llvm-commits
mailing list