diff options
| author | Chris Lattner <sabre@nondot.org> | 2004-05-01 21:24:39 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2004-05-01 21:24:39 +0000 | 
| commit | 8c0bc68910e575328a7d34143770ee9d8924e251 (patch) | |
| tree | c160c7cb5ee25aa24284f6af3b366f76337e0552 /llvm | |
| parent | c49a9a5d7670265ddf28a5b59004240663650d1f (diff) | |
| download | bcm5719-llvm-8c0bc68910e575328a7d34143770ee9d8924e251.tar.gz bcm5719-llvm-8c0bc68910e575328a7d34143770ee9d8924e251.zip  | |
Operate on the Machine CFG instead of on the LLVM CFG
llvm-svn: 13302
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/LiveIntervals.cpp | 17 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/PHIElimination.cpp | 12 | 
2 files changed, 12 insertions, 17 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervals.cpp b/llvm/lib/CodeGen/LiveIntervals.cpp index a54bd7a2a5c..3adad780603 100644 --- a/llvm/lib/CodeGen/LiveIntervals.cpp +++ b/llvm/lib/CodeGen/LiveIntervals.cpp @@ -17,6 +17,7 @@  #define DEBUG_TYPE "liveintervals"  #include "LiveIntervals.h" +#include "llvm/Value.h"  #include "llvm/Analysis/LoopInfo.h"  #include "llvm/CodeGen/LiveVariables.h"  #include "llvm/CodeGen/MachineFrameInfo.h" @@ -26,7 +27,6 @@  #include "llvm/Target/MRegisterInfo.h"  #include "llvm/Target/TargetInstrInfo.h"  #include "llvm/Target/TargetMachine.h" -#include "llvm/Support/CFG.h"  #include "Support/CommandLine.h"  #include "Support/Debug.h"  #include "Support/Statistic.h" @@ -97,10 +97,9 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {      unsigned miIndex = 0;      for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = mf_->end();           mbb != mbbEnd; ++mbb) { -        const std::pair<MachineBasicBlock*, unsigned>& entry = -            lv_->getMachineBasicBlockInfo(mbb); -        bool inserted = mbbi2mbbMap_.insert(std::make_pair(entry.second, -                                                           entry.first)).second; +        unsigned mbbIdx = lv_->getMachineBasicBlockIndex(mbb); +        bool inserted = mbbi2mbbMap_.insert(std::make_pair(mbbIdx, +                                                           mbb)).second;          assert(inserted && "multiple index -> MachineBasicBlock");          for (MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->end(); @@ -182,7 +181,7 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {      DEBUG(          for (MachineFunction::iterator mbbi = mf_->begin(), mbbe = mf_->end();               mbbi != mbbe; ++mbbi) { -            std::cerr << mbbi->getBasicBlock()->getName() << ":\n"; +            std::cerr << ((Value*)mbbi->getBasicBlock())->getName() << ":\n";              for (MachineBasicBlock::iterator mii = mbbi->begin(),                       mie = mbbi->end(); mii != mie; ++mii) {                  std::cerr << getInstructionIndex(mii) << '\t'; @@ -404,13 +403,13 @@ void LiveIntervals::computeIntervals()  {      DEBUG(std::cerr << "********** COMPUTING LIVE INTERVALS **********\n");      DEBUG(std::cerr << "********** Function: " -          << mf_->getFunction()->getName() << '\n'); +          << ((Value*)mf_->getFunction())->getName() << '\n');      for (MbbIndex2MbbMap::iterator               it = mbbi2mbbMap_.begin(), itEnd = mbbi2mbbMap_.end();           it != itEnd; ++it) {          MachineBasicBlock* mbb = it->second; -        DEBUG(std::cerr << mbb->getBasicBlock()->getName() << ":\n"); +        DEBUG(std::cerr << ((Value*)mbb->getBasicBlock())->getName() << ":\n");          for (MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->end();               mi != miEnd; ++mi) { @@ -451,7 +450,7 @@ void LiveIntervals::joinIntervals()      for (MachineFunction::iterator mbbi = mf_->begin(), mbbe = mf_->end();           mbbi != mbbe; ++mbbi) {          MachineBasicBlock* mbb = mbbi; -        DEBUG(std::cerr << mbb->getBasicBlock()->getName() << ":\n"); +        DEBUG(std::cerr << ((Value*)mbb->getBasicBlock())->getName() << ":\n");          for (MachineBasicBlock::iterator mi = mbb->begin(), mie = mbb->end();               mi != mie; ++mi) { diff --git a/llvm/lib/CodeGen/PHIElimination.cpp b/llvm/lib/CodeGen/PHIElimination.cpp index 324f4c4e853..180cb6d7935 100644 --- a/llvm/lib/CodeGen/PHIElimination.cpp +++ b/llvm/lib/CodeGen/PHIElimination.cpp @@ -20,7 +20,6 @@  #include "llvm/CodeGen/LiveVariables.h"  #include "llvm/Target/TargetInstrInfo.h"  #include "llvm/Target/TargetMachine.h" -#include "llvm/Support/CFG.h"  #include "Support/STLExtras.h"  using namespace llvm; @@ -195,14 +194,12 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {            // at an appropriate point later.            //            bool ValueIsLive = false; -          const BasicBlock *BB = opBlock.getBasicBlock(); -          for (succ_const_iterator SI = succ_begin(BB), E = succ_end(BB); -               SI != E && !ValueIsLive; ++SI) { -            const std::pair<MachineBasicBlock*, unsigned> & -              SuccInfo = LV->getBasicBlockInfo(*SI); +          for (MachineBasicBlock::succ_iterator SI = opBlock.succ_begin(), +                 E = opBlock.succ_end(); SI != E && !ValueIsLive; ++SI) { +            MachineBasicBlock *MBB = *SI;              // Is it alive in this successor? -            unsigned SuccIdx = SuccInfo.second; +            unsigned SuccIdx = LV->getMachineBasicBlockIndex(MBB);              if (SuccIdx < InRegVI.AliveBlocks.size() &&                  InRegVI.AliveBlocks[SuccIdx]) {                ValueIsLive = true; @@ -210,7 +207,6 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {              }              // Is it killed in this successor? -            MachineBasicBlock *MBB = SuccInfo.first;              for (unsigned i = 0, e = InRegVI.Kills.size(); i != e; ++i)                if (InRegVI.Kills[i].first == MBB) {                  ValueIsLive = true;  | 

