[llvm-commits] [llvm] r88880 - /llvm/trunk/lib/CodeGen/PHIElimination.cpp
Lang Hames
lhames at gmail.com
Sun Nov 15 18:00:09 PST 2009
Author: lhames
Date: Sun Nov 15 20:00:09 2009
New Revision: 88880
URL: http://llvm.org/viewvc/llvm-project?rev=88880&view=rev
Log:
Fix for the original bug in PR5495 - Look at uses as well as defs when determining the PHI-copy insert point.
- Patch by Andrew Canis!
Modified:
llvm/trunk/lib/CodeGen/PHIElimination.cpp
Modified: llvm/trunk/lib/CodeGen/PHIElimination.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PHIElimination.cpp?rev=88880&r1=88879&r2=88880&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/PHIElimination.cpp (original)
+++ llvm/trunk/lib/CodeGen/PHIElimination.cpp Sun Nov 15 20:00:09 2009
@@ -141,10 +141,10 @@
if (!SuccMBB.isLandingPad())
return MBB.getFirstTerminator();
- // Discover any definitions in this basic block.
+ // Discover any defs/uses in this basic block.
SmallPtrSet<MachineInstr*, 8> DefUsesInMBB;
- for (MachineRegisterInfo::def_iterator RI = MRI->def_begin(SrcReg),
- RE = MRI->def_end(); RI != RE; ++RI) {
+ for (MachineRegisterInfo::reg_iterator RI = MRI->reg_begin(SrcReg),
+ RE = MRI->reg_end(); RI != RE; ++RI) {
MachineInstr *DefUseMI = &*RI;
if (DefUseMI->getParent() == &MBB)
DefUsesInMBB.insert(DefUseMI);
@@ -155,11 +155,11 @@
// No defs. Insert the copy at the start of the basic block.
InsertPoint = MBB.begin();
} else if (DefUsesInMBB.size() == 1) {
- // Insert the copy immediately after the def.
+ // Insert the copy immediately after the def/use.
InsertPoint = *DefUsesInMBB.begin();
++InsertPoint;
} else {
- // Insert the copy immediately after the last def.
+ // Insert the copy immediately after the last def/use.
InsertPoint = MBB.end();
while (!DefUsesInMBB.count(&*--InsertPoint)) {}
++InsertPoint;
More information about the llvm-commits
mailing list