[llvm-commits] [llvm] r49198 - /llvm/trunk/lib/CodeGen/PHIElimination.cpp

Evan Cheng evan.cheng at apple.com
Thu Apr 3 18:20:06 PDT 2008


Author: evancheng
Date: Thu Apr  3 20:20:05 2008
New Revision: 49198

URL: http://llvm.org/viewvc/llvm-project?rev=49198&view=rev
Log:
Undo PHI elimination copy placement patch. This causes coalescing (performace) issues.

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=49198&r1=49197&r2=49198&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/PHIElimination.cpp (original)
+++ llvm/trunk/lib/CodeGen/PHIElimination.cpp Thu Apr  3 20:20:05 2008
@@ -49,12 +49,6 @@
     }
 
   private:
-    /// findInsertionPoint - Find a safe location to insert a move to copy
-    /// source of a PHI instruction.
-    MachineBasicBlock::iterator
-      findInsertionPoint(MachineBasicBlock &MBB, MachineInstr *DefMI,
-                         unsigned DstReg, unsigned SrcReg) const;
-
     /// EliminatePHINodes - Eliminate phi nodes by inserting copy instructions
     /// in predecessor basic blocks.
     ///
@@ -132,28 +126,6 @@
   return true;
 }
 
-/// findInsertionPoint - Find a safe location to insert a move to copy
-/// source of a PHI instruction.
-MachineBasicBlock::iterator
-PNE::findInsertionPoint(MachineBasicBlock &MBB, MachineInstr *DefMI,
-                        unsigned DstReg, unsigned SrcReg) const {
-  if (DefMI->getOpcode() == TargetInstrInfo::PHI ||
-      DefMI->getParent() != &MBB)
-    return MBB.getFirstTerminator();
-
-  for (MachineRegisterInfo::use_iterator I = MRI->use_begin(SrcReg),
-         E = MRI->use_end(); I != E; ++I)
-    if (I->getParent() == &MBB)
-      return MBB.getFirstTerminator();
-  for (MachineRegisterInfo::use_iterator I = MRI->use_begin(DstReg),
-         E = MRI->use_end(); I != E; ++I)
-    if (I->getParent() == &MBB)
-      return MBB.getFirstTerminator();
-
-  MachineBasicBlock::iterator I = DefMI;
-  return ++I;
-}
-
 /// LowerAtomicPHINode - Lower the PHI node at the top of the specified block,
 /// under the assuption that it needs to be lowered in a way that supports
 /// atomic execution of PHIs.  This lowering method is always correct all of the
@@ -242,8 +214,7 @@
  
     // Find a safe location to insert the copy, this may be the first
     // terminator in the block (or end()).
-    MachineBasicBlock::iterator InsertPos =
-      findInsertionPoint(opBlock, DefMI, IncomingReg, SrcReg);
+    MachineBasicBlock::iterator InsertPos = opBlock.getFirstTerminator();
     
     // Insert the copy.
     TII->copyRegToReg(opBlock, InsertPos, IncomingReg, SrcReg, RC, RC);





More information about the llvm-commits mailing list