Give PhiCp nodes better names in many cases.
authorBrian Gaeke <gaeke@uiuc.edu>
Fri, 28 May 2004 19:34:00 +0000 (19:34 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Fri, 28 May 2004 19:34:00 +0000 (19:34 +0000)
Simplify InsertPhiElimInstructions(), and give it a better doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13880 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/InstrSelection/InstrSelection.cpp

index bed9bb5bb1fe2037101951b22cd8c52e6b65669d..db7478a4b4454f3997682b99cba3b586f02686d2 100644 (file)
@@ -220,8 +220,7 @@ InstructionSelection::InsertCodeForPhis(Function &F) {
   for (MachineFunction::iterator BB = MF.begin(); BB != MF.end(); ++BB) {
     for (BasicBlock::const_iterator IIt = BB->getBasicBlock()->begin();
          const PHINode *PN = dyn_cast<PHINode>(IIt); ++IIt) {
-      // FIXME: This is probably wrong...
-      Value *PhiCpRes = new PHINode(PN->getType(), "PhiCp:");
+      Value *PhiCpRes = new PHINode(PN->getType(), PN->getName() + ":PhiCp");
 
       // The leak detector shouldn't track these nodes.  They are not garbage,
       // even though their parent field is never filled in.
@@ -254,11 +253,10 @@ InstructionSelection::InsertCodeForPhis(Function &F) {
   } // for all BBs in function
 }
 
-//-------------------------------------------------------------------------
-// Thid method inserts a copy instruction to a predecessor BB as a result
-// of phi elimination.
-//-------------------------------------------------------------------------
-
+/// InsertPhiElimInstructions - Inserts the instructions in CpVec into the
+/// MachineBasicBlock corresponding to BB, just before its terminator
+/// instruction. This is used by InsertCodeForPhis() to insert copies, above.
+///
 void
 InstructionSelection::InsertPhiElimInstructions(BasicBlock *BB,
                                         const std::vector<MachineInstr*>& CpVec)
@@ -268,19 +266,9 @@ InstructionSelection::InsertPhiElimInstructions(BasicBlock *BB,
   MachineInstr *FirstMIOfTerm = MC4Term.front();
   assert (FirstMIOfTerm && "No Machine Instrs for terminator");
 
-  MachineFunction &MF = MachineFunction::get(BB->getParent());
-
-  // FIXME: if PHI instructions existed in the machine code, this would be
-  // unnecessary.
-  MachineBasicBlock *MBB = 0;
-  for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I)
-    if (I->getBasicBlock() == BB) {
-      MBB = I;
-      break;
-    }
-
+  MachineBasicBlock *MBB = FirstMIOfTerm->getParent();
+  assert(MBB && "Machine BB for predecessor's terminator not found");
   MachineBasicBlock::iterator MCIt = FirstMIOfTerm;
-
   assert(MCIt != MBB->end() && "Start inst of terminator not found");
   
   // insert the copy instructions just before the first machine instruction