diff options
Diffstat (limited to 'lib/CodeGen/RegAlloc/PhyRegAlloc.cpp')
-rw-r--r-- | lib/CodeGen/RegAlloc/PhyRegAlloc.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp b/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp index 61a2019811..6ba63e3051 100644 --- a/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp +++ b/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp @@ -10,6 +10,7 @@ // 9/10/01 - Ruchira Sasanka - created. //**************************************************************************/ +#include "llvm/CodeGen/RegisterAllocation.h" #include "llvm/CodeGen/PhyRegAlloc.h" #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineCodeForMethod.h" @@ -23,8 +24,6 @@ using std::cerr; // ***TODO: There are several places we add instructions. Validate the order // of adding these instructions. - - cl::Enum<RegAllocDebugLevel_t> DEBUG_RA("dregalloc", cl::NoFlags, "enable register allocation debugging information", clEnumValN(RA_DEBUG_None , "n", "disable debug output"), @@ -32,6 +31,22 @@ cl::Enum<RegAllocDebugLevel_t> DEBUG_RA("dregalloc", cl::NoFlags, clEnumValN(RA_DEBUG_Verbose, "v", "enable extra debug output"), 0); +bool RegisterAllocation::runOnMethod(Method *M) { + if (DEBUG_RA) + cerr << "\n******************** Method "<< M->getName() + << " ********************\n"; + + MethodLiveVarInfo LVI(M ); // Analyze live varaibles + LVI.analyze(); + + PhyRegAlloc PRA(M, Target, &LVI); // allocate registers + PRA.allocateRegisters(); + + if (DEBUG_RA) cerr << "\nRegister allocation complete!\n"; + return false; +} + + //---------------------------------------------------------------------------- // Constructor: Init local composite objects and create register classes. //---------------------------------------------------------------------------- |