summaryrefslogtreecommitdiff
path: root/lib/CodeGen/StrongPHIElimination.cpp
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2010-12-30 00:42:23 +0000
committerCameron Zwarich <zwarich@apple.com>2010-12-30 00:42:23 +0000
commitd16ad3e43c4dc59b3f6f8f36338a778f7c7a8701 (patch)
tree5d70be74276d860b084551583e4a90526770c747 /lib/CodeGen/StrongPHIElimination.cpp
parente0f6db369d09e15f752618b2346642ee65bf7b3d (diff)
downloadllvm-d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701.tar.gz
llvm-d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701.tar.bz2
llvm-d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701.tar.xz
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
Diffstat (limited to 'lib/CodeGen/StrongPHIElimination.cpp')
-rw-r--r--lib/CodeGen/StrongPHIElimination.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/CodeGen/StrongPHIElimination.cpp b/lib/CodeGen/StrongPHIElimination.cpp
index 87bb803488..91ec13df64 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);
}
}
}