* Code Cleanups

* Removal dependencies on Type.h & remove uses of getTypeID()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1718 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-02-05 03:52:29 +00:00
parent 569ea239f0
commit 3773094a1d
6 changed files with 50 additions and 60 deletions

View File

@ -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);

View File

@ -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
}

View File

@ -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);

View File

@ -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
}

View File

@ -1,6 +1,7 @@
#include "SparcRegClassInfo.h"
#include "llvm/CodeGen/IGNode.h"
#include "llvm/Target/Sparc.h"
#include "llvm/Type.h"
#include <iostream>
using std::cerr;
@ -145,10 +146,8 @@ void SparcIntRegClass::colorIGNode(IGNode * Node, bool IsColorUsedArr[]) const {
// If a color is still not fond, mark for spilling
//
//----------------------------------------------------------------------------
void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const
{
LiveRange * LR = Node->getParentLR();
void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const{
LiveRange *LR = Node->getParentLR();
unsigned NumNeighbors = Node->getNumOfNeighbors(); // total # of neighbors
for(unsigned n=0; n < NumNeighbors; n++) { // for each neigh
@ -157,7 +156,7 @@ void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const
if( NeighLR->hasColor() ) { // if neigh has a color
IsColorUsedArr[ NeighLR->getColor() ] = true; // record that color
if( NeighLR->getTypeID() == Type::DoubleTyID )
if (NeighLR->getType() == Type::DoubleTy)
IsColorUsedArr[ (NeighLR->getColor()) + 1 ] = true;
}
else if( NeighLR->hasSuggestedColor() ) { // if neigh has sugg color
@ -167,7 +166,7 @@ void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const
// if the neighbout can use the suggested color
IsColorUsedArr[ NeighLR->getSuggestedColor() ] = true;
if( NeighLR->getTypeID() == Type::DoubleTyID )
if (NeighLR->getType() == Type::DoubleTy)
IsColorUsedArr[ (NeighLR->getSuggestedColor()) + 1 ] = true;
}
@ -200,7 +199,7 @@ void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const
// cannot go there. By doing that, we provide more space for singles
// in f0 - f31
//
if( LR->getTypeID() == Type::DoubleTyID )
if (LR->getType() == Type::DoubleTy)
ColorFound = findFloatColor( LR, 32, 64, IsColorUsedArr );
@ -265,11 +264,11 @@ void SparcFloatRegClass::colorIGNode(IGNode * Node,bool IsColorUsedArr[]) const
int SparcFloatRegClass::findFloatColor(const LiveRange *LR,
unsigned Start, unsigned End,
bool IsColorUsedArr[] ) const {
bool IsColorUsedArr[]) const {
bool ColorFound = false;
unsigned c;
if (LR->getTypeID() == Type::DoubleTyID) {
if (LR->getType() == Type::DoubleTy) {
// find first unused color for a double
for (c=Start; c < End ; c+= 2)
if (!IsColorUsedArr[c] && !IsColorUsedArr[c+1])

View File

@ -143,17 +143,16 @@ UltraSparcRegInfo::getCallInstRetAddr(const MachineInstr *CallMI) const {
// of a LiveRange, Value and using the unified RegClassID
//
int UltraSparcRegInfo::getRegType(const LiveRange *LR) const {
unsigned Typ;
switch (LR->getRegClass()->getID()) {
case IntRegClassID: return IntRegType;
case FloatRegClassID:
Typ = LR->getTypeID();
if (Typ == Type::FloatTyID)
case FloatRegClassID: {
const Type *Typ = LR->getType();
if (Typ == Type::FloatTy)
return FPSingleRegType;
else if (Typ == Type::DoubleTyID)
else if (Typ == Type::DoubleTy)
return FPDoubleRegType;
assert(0 && "Unknown type in FloatRegClass");
}
case IntCCRegClassID: return IntCCRegType;
case FloatCCRegClassID: return FloatCCRegType;
default: assert( 0 && "Unknown reg class ID");
@ -1444,7 +1443,7 @@ void UltraSparcRegInfo::printReg(const LiveRange *LR) {
} else if (RegClassID == FloatRegClassID) {
cerr << "[" << SparcFloatRegOrder::getRegName(LR->getColor());
if( LR->getTypeID() == Type::DoubleTyID )
if( LR->getType() == Type::DoubleTy)
cerr << "+" << SparcFloatRegOrder::getRegName(LR->getColor()+1);
cerr << "]\n";
}