Insert machine instructions generated for Phi nodes into their
authorBrian Gaeke <gaeke@uiuc.edu>
Sun, 30 May 2004 03:33:49 +0000 (03:33 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Sun, 30 May 2004 03:33:49 +0000 (03:33 +0000)
corresponding MachineCodeForInstruction vectors.

I need to be able to get the register allocated for the thing which is
called PhiCpRes in this code; this should make that task easier, plus,
Phi nodes are no longer "special" in the sense that their
MachineCodeForInstruction is empty.

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

lib/Target/SparcV9/InstrSelection/InstrSelection.cpp

index 8c3dd5d859e527addd1c09e15289c88c93c42705..c9be16f192f6f02542977ad9975be3815a200cb3 100644 (file)
@@ -217,6 +217,7 @@ void InstructionSelection::InsertCodeForPhis(Function &F) {
 
       // For each of PN's incoming values, insert a copy in the corresponding
       // predecessor block.
+      MachineCodeForInstruction &MCforPN = MachineCodeForInstruction::get (PN);
       for (unsigned i = 0; i < PN->getNumIncomingValues(); ++i) {
         std::vector<MachineInstr*> mvec, CpVec;
         Target.getRegInfo().cpValue2Value(PN->getIncomingValue(i), PhiCpRes,
@@ -230,12 +231,14 @@ void InstructionSelection::InsertCodeForPhis(Function &F) {
         }
         // Insert the copy instructions into the predecessor BB.        
         InsertPhiElimInstructions(PN->getIncomingBlock(i), CpVec);
+        MCforPN.insert (MCforPN.end (), CpVec.begin (), CpVec.end ());
       }
       // Insert a copy instruction from PhiCpRes to PN.
       std::vector<MachineInstr*> mvec;
       Target.getRegInfo().cpValue2Value(PhiCpRes, const_cast<PHINode*>(PN),
                                         mvec);
       BB->insert(BB->begin(), mvec.begin(), mvec.end());
+      MCforPN.insert (MCforPN.end (), mvec.begin (), mvec.end ());
     }  // for each Phi Instr in BB
   } // for all BBs in function
 }