diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/RegAlloc/LiveRangeInfo.cpp | 14 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/PhyRegAlloc.cpp | 26 |
2 files changed, 18 insertions, 22 deletions
diff --git a/lib/CodeGen/RegAlloc/LiveRangeInfo.cpp b/lib/CodeGen/RegAlloc/LiveRangeInfo.cpp index efa428c909..7d43763a15 100644 --- a/lib/CodeGen/RegAlloc/LiveRangeInfo.cpp +++ b/lib/CodeGen/RegAlloc/LiveRangeInfo.cpp @@ -327,7 +327,7 @@ void LiveRangeInfo::coalesceLRs() if( ! LROfUse ) { // if LR of use is not found //don't warn about labels - if (!((*UseI)->getType())->isLabelType() && DEBUG_RA) + if (!isa<BasicBlock>(*UseI) && DEBUG_RA) cerr << " !! Warning: No LR for use " << RAV(*UseI) << "\n"; continue; // ignore and continue } @@ -338,21 +338,19 @@ void LiveRangeInfo::coalesceLRs() //RegClass *const RCOfUse = LROfUse->getRegClass(); //if( RCOfDef == RCOfUse ) { // if the reg classes are the same - if( MRI.getRegType(LROfDef) == MRI.getRegType(LROfUse) ) { + if (MRI.getRegType(LROfDef) == MRI.getRegType(LROfUse)) { // If the two RegTypes are the same - - if( ! RCOfDef->getInterference(LROfDef, LROfUse) ) { + if (!RCOfDef->getInterference(LROfDef, LROfUse) ) { unsigned CombinedDegree = LROfDef->getUserIGNode()->getNumOfNeighbors() + LROfUse->getUserIGNode()->getNumOfNeighbors(); - if( CombinedDegree <= RCOfDef->getNumOfAvailRegs() ) { - + if (CombinedDegree <= RCOfDef->getNumOfAvailRegs()) { // if both LRs do not have suggested colors - if( ! (LROfDef->hasSuggestedColor() && - LROfUse->hasSuggestedColor() ) ) { + if (!(LROfDef->hasSuggestedColor() && + LROfUse->hasSuggestedColor())) { RCOfDef->mergeIGNodesOfLRs(LROfDef, LROfUse); unionAndUpdateLRs(LROfDef, LROfUse); diff --git a/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp b/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp index 938ab1b851..01e4879cf8 100644 --- a/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp +++ b/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp @@ -20,6 +20,7 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Target/MachineFrameInfo.h" #include "llvm/Method.h" +#include "llvm/Type.h" #include <iostream> #include <math.h> using std::cerr; @@ -1164,22 +1165,19 @@ void PhyRegAlloc::markUnusableSugColors() // this method allocate a new spill position on the stack. //---------------------------------------------------------------------------- -void PhyRegAlloc::allocateStackSpace4SpilledLRs() -{ - if(DEBUG_RA ) cerr << "\nsetting LR stack offsets ...\n"; +void PhyRegAlloc::allocateStackSpace4SpilledLRs() { + if (DEBUG_RA) cerr << "\nsetting LR stack offsets ...\n"; - // hash map iterator - LiveRangeMapType::const_iterator HMI = (LRI.getLiveRangeMap())->begin(); - LiveRangeMapType::const_iterator HMIEnd = (LRI.getLiveRangeMap())->end(); + LiveRangeMapType::const_iterator HMI = LRI.getLiveRangeMap()->begin(); + LiveRangeMapType::const_iterator HMIEnd = LRI.getLiveRangeMap()->end(); - for( ; HMI != HMIEnd ; ++HMI ) { - if(HMI->first && HMI->second) { - LiveRange *L = HMI->second; // get the LiveRange - if( ! L->hasColor() ) - // NOTE: ** allocating the size of long Type ** - L->setSpillOffFromFP(mcInfo.allocateSpilledValue(TM, Type::LongTy)); - } - } // for all LR's in hash map + for( ; HMI != HMIEnd ; ++HMI) { + if (HMI->first && HMI->second) { + LiveRange *L = HMI->second; // get the LiveRange + if (!L->hasColor()) // NOTE: ** allocating the size of long Type ** + L->setSpillOffFromFP(mcInfo.allocateSpilledValue(TM, Type::LongTy)); + } + } // for all LR's in hash map } |