From: Cameron Zwarich Date: Thu, 30 Dec 2010 00:42:23 +0000 (+0000) Subject: Use getVRegDef() instead of def_iterator. This leads to fewer defs being added X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701;p=oota-llvm.git 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 87bb8034883..91ec13df643 100644 --- a/lib/CodeGen/StrongPHIElimination.cpp +++ b/lib/CodeGen/StrongPHIElimination.cpp @@ -233,10 +233,9 @@ bool StrongPHIElimination::runOnMachineFunction(MachineFunction& MF) { 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); } } }