Use getVRegDef() instead of def_iterator. This leads to fewer defs being added
with 2-address instructions, for about a 3.5% speedup of StrongPHIElimination on
403.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122635 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/StrongPHIElimination.cpp b/lib/CodeGen/StrongPHIElimination.cpp
index 87bb803..91ec13d 100644
--- a/lib/CodeGen/StrongPHIElimination.cpp
+++ b/lib/CodeGen/StrongPHIElimination.cpp
@@ -233,10 +233,9 @@
addReg(SrcReg);
unionRegs(DestReg, SrcReg);
- for (MachineRegisterInfo::def_iterator DI = MRI->def_begin(SrcReg),
- DE = MRI->def_end(); DI != DE; ++DI) {
- PHISrcDefs[DI->getParent()].push_back(&*DI);
- }
+ MachineInstr* DefMI = MRI->getVRegDef(SrcReg);
+ if (DefMI)
+ PHISrcDefs[DefMI->getParent()].push_back(DefMI);
}
}
}