diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2009-12-07 03:07:01 +0000 | 
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2009-12-07 03:07:01 +0000 | 
| commit | 92c310cb7984bb3336725939dbb71709d473648e (patch) | |
| tree | 506e5d9b3b21ffe35d0d4a6e0d8c801f55e8fbc6 /llvm | |
| parent | bcd035061dfe3dd81279493ffe3d999d930e17cc (diff) | |
| download | bcm5719-llvm-92c310cb7984bb3336725939dbb71709d473648e.tar.gz bcm5719-llvm-92c310cb7984bb3336725939dbb71709d473648e.zip  | |
If BB is empty, insert PHI before end() instead of front().
llvm-svn: 90744
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/MachineSSAUpdater.cpp | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/MachineSSAUpdater.cpp b/llvm/lib/CodeGen/MachineSSAUpdater.cpp index b7711f9f8cc..069c3c281f8 100644 --- a/llvm/lib/CodeGen/MachineSSAUpdater.cpp +++ b/llvm/lib/CodeGen/MachineSSAUpdater.cpp @@ -157,8 +157,9 @@ unsigned MachineSSAUpdater::GetValueInMiddleOfBlock(MachineBasicBlock *BB) {      return SingularValue;    // Otherwise, we do need a PHI: insert one now. +  MachineBasicBlock::iterator Loc = BB->empty() ? BB->end() : BB->front();    MachineInstr *InsertedPHI = InsertNewDef(TargetInstrInfo::PHI, BB, -                                           BB->front(), VRC, MRI, TII); +                                           Loc, VRC, MRI, TII);    // Fill in all the predecessors of the PHI.    MachineInstrBuilder MIB(InsertedPHI); @@ -231,7 +232,8 @@ unsigned MachineSSAUpdater::GetValueAtEndOfBlockInternal(MachineBasicBlock *BB){      // that we have a cycle.  Handle this by inserting a PHI node and returning      // it.  When we get back to the first instance of the recursion we will fill      // in the PHI node. -    MachineInstr *NewPHI = InsertNewDef(TargetInstrInfo::PHI, BB, BB->front(), +    MachineBasicBlock::iterator Loc = BB->empty() ? BB->end() : BB->front(); +    MachineInstr *NewPHI = InsertNewDef(TargetInstrInfo::PHI, BB, Loc,                                          VRC, MRI,TII);      unsigned NewVR = NewPHI->getOperand(0).getReg();      InsertRes.first->second = NewVR; @@ -311,7 +313,8 @@ unsigned MachineSSAUpdater::GetValueAtEndOfBlockInternal(MachineBasicBlock *BB){    // Otherwise, we do need a PHI: insert one now if we don't already have one.    MachineInstr *InsertedPHI;    if (InsertedVal == 0) { -    InsertedPHI = InsertNewDef(TargetInstrInfo::PHI, BB, BB->front(), +    MachineBasicBlock::iterator Loc = BB->empty() ? BB->end() : BB->front(); +    InsertedPHI = InsertNewDef(TargetInstrInfo::PHI, BB, Loc,                                 VRC, MRI, TII);      InsertedVal = InsertedPHI->getOperand(0).getReg();    } else {  | 

