mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-05 13:09:10 +00:00
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
This commit is contained in:
parent
0ae4568169
commit
3e0f8288e7
@ -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();
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -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();
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user