aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-02-04 17:38:48 +0000
committerChris Lattner <sabre@nondot.org>2002-02-04 17:38:48 +0000
commit3e0f8288e774a88d837329d8f70c02fcbb7e3c69 (patch)
tree0de4001ef0d0b879f8e846f5e93090142bc178ba
parent0ae456816916a396fd07da96574fa93c02fcdc3d (diff)
Make #include "llvm/Analysis/LoopDepth.h" be an internal artifact of how register allocation is implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1693 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/RegAlloc/PhyRegAlloc.h27
-rw-r--r--lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h27
2 files changed, 26 insertions, 28 deletions
diff --git a/lib/CodeGen/RegAlloc/PhyRegAlloc.h b/lib/CodeGen/RegAlloc/PhyRegAlloc.h
index 38f8dd774b..8efa757026 100644
--- a/lib/CodeGen/RegAlloc/PhyRegAlloc.h
+++ b/lib/CodeGen/RegAlloc/PhyRegAlloc.h
@@ -32,12 +32,12 @@
#include "llvm/CodeGen/RegClass.h"
#include "llvm/CodeGen/LiveRangeInfo.h"
-#include "llvm/Analysis/LoopDepth.h"
#include <deque>
class MachineCodeForMethod;
class MachineRegInfo;
class MethodLiveVarInfo;
class MachineInstr;
+namespace cfg { class LoopDepthCalculator; }
//----------------------------------------------------------------------------
// Class AddedInstrns:
@@ -66,8 +66,7 @@ typedef std::hash_map<const MachineInstr *, AddedInstrns *> AddedInstrMapType;
//----------------------------------------------------------------------------
-class PhyRegAlloc: public NonCopyable
-{
+class PhyRegAlloc: public NonCopyable {
std::vector<RegClass *> RegClassList; // vector of register classes
const TargetMachine &TM; // target machine
@@ -81,10 +80,20 @@ class PhyRegAlloc: public NonCopyable
AddedInstrMapType AddedInstrMap; // to store instrns added in this phase
- cfg::LoopDepthCalculator LoopDepthCalc; // to calculate loop depths
+ cfg::LoopDepthCalculator *LoopDepthCalc; // to calculate loop depths
ReservedColorListType ResColList; // A set of reserved regs if desired.
// currently not used
+public:
+ PhyRegAlloc(Method *M, const TargetMachine& TM, MethodLiveVarInfo *Lvi,
+ cfg::LoopDepthCalculator *LoopDepthCalc);
+ ~PhyRegAlloc();
+
+ // main method called for allocating registers
+ //
+ void allocateRegisters();
+private:
+
//------- ------------------ private methods---------------------------------
@@ -134,16 +143,6 @@ class PhyRegAlloc: public NonCopyable
int getUniRegNotUsedByThisInst(RegClass *RC, const MachineInstr *MInst);
void addInterf4PseudoInstr(const MachineInstr *MInst);
-
- public:
- PhyRegAlloc(Method *const M, const TargetMachine& TM,
- MethodLiveVarInfo *const Lvi);
- ~PhyRegAlloc();
-
- // main method called for allocating registers
- //
- void allocateRegisters();
-
};
diff --git a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h
index 38f8dd774b..8efa757026 100644
--- a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h
+++ b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h
@@ -32,12 +32,12 @@
#include "llvm/CodeGen/RegClass.h"
#include "llvm/CodeGen/LiveRangeInfo.h"
-#include "llvm/Analysis/LoopDepth.h"
#include <deque>
class MachineCodeForMethod;
class MachineRegInfo;
class MethodLiveVarInfo;
class MachineInstr;
+namespace cfg { class LoopDepthCalculator; }
//----------------------------------------------------------------------------
// Class AddedInstrns:
@@ -66,8 +66,7 @@ typedef std::hash_map<const MachineInstr *, AddedInstrns *> AddedInstrMapType;
//----------------------------------------------------------------------------
-class PhyRegAlloc: public NonCopyable
-{
+class PhyRegAlloc: public NonCopyable {
std::vector<RegClass *> RegClassList; // vector of register classes
const TargetMachine &TM; // target machine
@@ -81,10 +80,20 @@ class PhyRegAlloc: public NonCopyable
AddedInstrMapType AddedInstrMap; // to store instrns added in this phase
- cfg::LoopDepthCalculator LoopDepthCalc; // to calculate loop depths
+ cfg::LoopDepthCalculator *LoopDepthCalc; // to calculate loop depths
ReservedColorListType ResColList; // A set of reserved regs if desired.
// currently not used
+public:
+ PhyRegAlloc(Method *M, const TargetMachine& TM, MethodLiveVarInfo *Lvi,
+ cfg::LoopDepthCalculator *LoopDepthCalc);
+ ~PhyRegAlloc();
+
+ // main method called for allocating registers
+ //
+ void allocateRegisters();
+private:
+
//------- ------------------ private methods---------------------------------
@@ -134,16 +143,6 @@ class PhyRegAlloc: public NonCopyable
int getUniRegNotUsedByThisInst(RegClass *RC, const MachineInstr *MInst);
void addInterf4PseudoInstr(const MachineInstr *MInst);
-
- public:
- PhyRegAlloc(Method *const M, const TargetMachine& TM,
- MethodLiveVarInfo *const Lvi);
- ~PhyRegAlloc();
-
- // main method called for allocating registers
- //
- void allocateRegisters();
-
};