diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-09-14 23:05:33 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-09-14 23:05:33 +0000 |
commit | 0e56b36b53a32481b56f7bd594244e24e67803ab (patch) | |
tree | e8a3a860186c02e84af5921e8d844975adb6f332 /llvm/lib/CodeGen/RegAlloc/RegClass.cpp | |
parent | d171a8c7c5d7ac5c4a6c4bd8ce4266c739a1635f (diff) | |
download | bcm5719-llvm-0e56b36b53a32481b56f7bd594244e24e67803ab.tar.gz bcm5719-llvm-0e56b36b53a32481b56f7bd594244e24e67803ab.zip |
Break RA_DEBUG option into several levels to get better control over
debug output.
llvm-svn: 3724
Diffstat (limited to 'llvm/lib/CodeGen/RegAlloc/RegClass.cpp')
-rw-r--r-- | llvm/lib/CodeGen/RegAlloc/RegClass.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/RegAlloc/RegClass.cpp b/llvm/lib/CodeGen/RegAlloc/RegClass.cpp index 5998f1fd664..b92b70997ba 100644 --- a/llvm/lib/CodeGen/RegAlloc/RegClass.cpp +++ b/llvm/lib/CodeGen/RegAlloc/RegClass.cpp @@ -1,3 +1,9 @@ +//===-- RegClass.cpp -----------------------------------------------------===// +// +// class RegClass for coloring-based register allocation for LLVM. +// +//===----------------------------------------------------------------------===// + #include "llvm/CodeGen/RegClass.h" #include "llvm/CodeGen/RegAllocCommon.h" using std::cerr; @@ -11,7 +17,7 @@ RegClass::RegClass(const Function *M, const ReservedColorListType *RCL) : Meth(M), MRC(Mrc), RegClassID( Mrc->getRegClassID() ), IG(this), IGNodeStack(), ReservedColorList(RCL) { - if( DEBUG_RA) + if( DEBUG_RA >= RA_DEBUG_Interference) cerr << "Created Reg Class: " << RegClassID << "\n"; IsColorUsedArr.resize(Mrc->getNumOfAllRegs()); @@ -24,7 +30,8 @@ RegClass::RegClass(const Function *M, //---------------------------------------------------------------------------- void RegClass::colorAllRegs() { - if(DEBUG_RA) cerr << "Coloring IG of reg class " << RegClassID << " ...\n"; + if(DEBUG_RA >= RA_DEBUG_Coloring) + cerr << "Coloring IG of reg class " << RegClassID << " ...\n"; // pre-color IGNodes pushAllIGNodes(); // push all IG Nodes @@ -57,7 +64,7 @@ void RegClass::pushAllIGNodes() // push non-constrained IGNodes bool PushedAll = pushUnconstrainedIGNodes(); - if( DEBUG_RA) { + if( DEBUG_RA >= RA_DEBUG_Coloring) { cerr << " Puhsed all-unconstrained IGNodes. "; if( PushedAll ) cerr << " No constrained nodes left."; cerr << "\n"; @@ -88,7 +95,7 @@ void RegClass::pushAllIGNodes() // NeedMoreSpills = !pushUnconstrainedIGNodes(); - if (DEBUG_RA) + if (DEBUG_RA >= RA_DEBUG_Coloring) cerr << "\nConstrained IG Node found !@!" << IGNodeSpill->getIndex(); } while(NeedMoreSpills); // repeat until we have pushed all @@ -129,7 +136,7 @@ bool RegClass::pushUnconstrainedIGNodes() IGNodeStack.push( IGNode ); // push IGNode on to the stack IGNode->pushOnStack(); // set OnStack and dec deg of neighs - if (DEBUG_RA > 1) { + if (DEBUG_RA >= RA_DEBUG_Coloring) { cerr << " pushed un-constrained IGNode " << IGNode->getIndex() ; cerr << " on to stack\n"; } @@ -230,7 +237,7 @@ void RegClass::colorIGNode(IGNode *const Node) MRC->colorIGNode(Node, IsColorUsedArr); } else { - if( DEBUG_RA ) { + if( DEBUG_RA >= RA_DEBUG_Coloring) { cerr << " Node " << Node->getIndex(); cerr << " already colored with color " << Node->getColor() << "\n"; } @@ -238,7 +245,7 @@ void RegClass::colorIGNode(IGNode *const Node) if( !Node->hasColor() ) { - if( DEBUG_RA ) { + if( DEBUG_RA >= RA_DEBUG_Coloring) { cerr << " Node " << Node->getIndex(); cerr << " - could not find a color (needs spilling)\n"; } |