[llvm] [EarlyIfConverter] Fix reg killed twice after early-if-predicator and ifcvt (PR #133554)
Juan Manuel Martinez CaamaƱo via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 31 00:45:51 PDT 2025
================
@@ -675,6 +682,28 @@ void SSAIfConv::rewritePHIOperands() {
}
}
+void SSAIfConv::clearRepeatedKillFlagsFromTBB(MachineBasicBlock *TBB,
+ MachineBasicBlock *FBB) {
+ assert(TBB != FBB);
+
+ // Collect virtual registers killed in FBB.
+ SmallDenseSet<Register> FBBKilledRegs;
+ for (MachineInstr &MI : FBB->instrs()) {
+ for (MachineOperand &MO : MI.operands()) {
+ if (MO.isReg() && MO.isKill() && MO.getReg().isVirtual())
+ FBBKilledRegs.insert(MO.getReg());
+ }
+ }
+
----------------
jmmartinez wrote:
Just a nit: if FBBKilledRegs is empty you can return early.
https://github.com/llvm/llvm-project/pull/133554
More information about the llvm-commits
mailing list