diff options
author | Chris Lattner <sabre@nondot.org> | 2002-02-04 05:52:08 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-02-04 05:52:08 +0000 |
commit | 2182c785c22a3e805d7d38708e75e5d30c547fdf (patch) | |
tree | fef38257c2cfce3e1726147e914cabf0a81e9cd8 /lib | |
parent | 9e881eb60d8dad093e8ce03f45860df8ac43837c (diff) |
* Minor cleanups
* Reduce number of #includes, sometimes drastically (LiveRangeInfo.h lost _7_)
* Move instrIsFeasible() from InstrScheduling.h to SchedPriorities.h
* Delete blank lines at end of files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/RegAlloc/IGNode.h | 14 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/LiveRange.h | 16 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/LiveRangeInfo.h | 78 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/PhyRegAlloc.h | 8 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/RegAllocCommon.h | 5 | ||||
-rw-r--r-- | lib/CodeGen/RegAlloc/RegClass.h | 11 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/IGNode.h | 14 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/LiveRange.h | 16 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/LiveRangeInfo.h | 78 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h | 8 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/RegAllocCommon.h | 5 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/RegClass.h | 11 |
12 files changed, 102 insertions, 162 deletions
diff --git a/lib/CodeGen/RegAlloc/IGNode.h b/lib/CodeGen/RegAlloc/IGNode.h index b89aea32b1..01ecc13783 100644 --- a/lib/CodeGen/RegAlloc/IGNode.h +++ b/lib/CodeGen/RegAlloc/IGNode.h @@ -28,6 +28,8 @@ #include "llvm/CodeGen/RegAllocCommon.h" #include "llvm/CodeGen/LiveRange.h" +class LiveRange; +class RegClass; //---------------------------------------------------------------------------- // Class IGNode @@ -35,8 +37,7 @@ // Represents a node in an interference graph. //---------------------------------------------------------------------------- -class IGNode -{ +class IGNode { const int Index; // index within IGNodeList bool OnStack; // this has been pushed on to stack for coloring @@ -51,9 +52,7 @@ class IGNode // After that, never incremented/set again nor used. LiveRange *const ParentLR; // parent LR (cannot be a const) - - - public: +public: // constructor // @@ -117,8 +116,9 @@ class IGNode inline void setRegClass(RegClass *const RC) { ParentLR->setRegClass(RC); } - inline RegClass *const getRegClass() const - { return ParentLR->getRegClass(); } + inline RegClass *const getRegClass() const { + return ParentLR->getRegClass(); + } inline bool hasColor() const { return ParentLR->hasColor(); } diff --git a/lib/CodeGen/RegAlloc/LiveRange.h b/lib/CodeGen/RegAlloc/LiveRange.h index 8034751da9..e1e2992a69 100644 --- a/lib/CodeGen/RegAlloc/LiveRange.h +++ b/lib/CodeGen/RegAlloc/LiveRange.h @@ -26,13 +26,9 @@ class IGNode; // of Values. //---------------------------------------------------------------------------- -class LiveRange : public ValueSet -{ - private: - +class LiveRange : public ValueSet { RegClass *MyRegClass; // register classs (e.g., int, FP) for this LR - bool doesSpanAcrossCalls; // // Does this live range span across calls? @@ -168,7 +164,7 @@ class LiveRange : public ValueSet } inline Type::PrimitiveID getTypeID() const { - return this->getType()->getPrimitiveID(); + return getType()->getPrimitiveID(); } inline void setSuggestedColor(int Col) { @@ -176,8 +172,10 @@ class LiveRange : public ValueSet if(SuggestedColor == -1 ) SuggestedColor = Col; +#if 0 else if (DEBUG_RA) std::cerr << "Already has a suggested color " << Col << "\n"; +#endif } inline unsigned getSuggestedColor() const { @@ -206,12 +204,6 @@ class LiveRange : public ValueSet inline unsigned getSpillCost() const { return SpillCost; } - }; - - - - #endif - diff --git a/lib/CodeGen/RegAlloc/LiveRangeInfo.h b/lib/CodeGen/RegAlloc/LiveRangeInfo.h index 9e7ef06fe2..09aca44f30 100644 --- a/lib/CodeGen/RegAlloc/LiveRangeInfo.h +++ b/lib/CodeGen/RegAlloc/LiveRangeInfo.h @@ -1,44 +1,39 @@ -/* Title: LiveRangeInfo.h -*- C++ -*- - Author: Ruchira Sasanka - Date: Jun 30, 01 - Purpose: - - This file contains the class LiveRangeInfo which constructs and keeps - the LiveRangMap which contains all the live ranges used in a method. - - Assumptions: - - All variables (llvm Values) are defined before they are used. However, a - constant may not be defined in the machine instruction stream if it can be - used as an immediate value within a machine instruction. However, register - allocation does not have to worry about immediate constants since they - do not require registers. - - Since an llvm Value has a list of uses associated, it is sufficient to - record only the defs in a Live Range. - -*/ - +//===-- LiveRangeInfo.h - Track all LiveRanges for a Method ------*- C++ -*-==// +// +// This file contains the class LiveRangeInfo which constructs and keeps +// the LiveRangMap which contains all the live ranges used in a method. +// +// Assumptions: +// +// All variables (llvm Values) are defined before they are used. However, a +// constant may not be defined in the machine instruction stream if it can be +// used as an immediate value within a machine instruction. However, register +// allocation does not have to worry about immediate constants since they +// do not require registers. +// +// Since an llvm Value has a list of uses associated, it is sufficient to +// record only the defs in a Live Range. +// +//===----------------------------------------------------------------------===// #ifndef LIVE_RANGE_INFO_H #define LIVE_RANGE_INFO_H -#include "llvm/Type.h" -#include "llvm/Method.h" -#include "llvm/CodeGen/MachineInstr.h" - -#include "llvm/Analysis/LiveVar/LiveVarSet.h" - -#include "llvm/CodeGen/IGNode.h" -#include "llvm/CodeGen/LiveRange.h" -#include "llvm/CodeGen/RegClass.h" +#include "Support/HashExtras.h" +class LiveRange; +class MachineInstr; +class LiveVarSet; +class RegClass; +class MachineRegInfo; +class TargetMachine; +class Value; +class Method; +class Instruction; typedef std::hash_map<const Value*, LiveRange*> LiveRangeMapType; typedef std::vector<const MachineInstr*> CallRetInstrListType; - - //---------------------------------------------------------------------------- // Class LiveRangeInfo // @@ -46,13 +41,8 @@ typedef std::vector<const MachineInstr*> CallRetInstrListType; // ranges used in a method. Also contain methods to coalesce live ranges. //---------------------------------------------------------------------------- -class LiveRangeInfo -{ - -private: - +class LiveRangeInfo { const Method *const Meth; // Method for which live range info is held - LiveRangeMapType LiveRangeMap; // A map from Value * to LiveRange * to // record all live ranges in a method // created by constructLiveRanges @@ -96,9 +86,9 @@ public: // in machine specific code) to the common live range map // inline void addLRToMap(const Value *Val, LiveRange *LR) { - assert( Val && LR && "Val/LR is NULL!\n"); - assert( (! LiveRangeMap[ Val ]) && "LR already set in map"); - LiveRangeMap[ Val ] = LR; + assert(Val && LR && "Val/LR is NULL!\n"); + assert((!LiveRangeMap[Val]) && "LR already set in map"); + LiveRangeMap[Val] = LR; } // return the common live range map for this method @@ -109,7 +99,7 @@ public: // Method sed to get the corresponding live range of a Value // inline LiveRange *getLiveRangeForValue( const Value *const Val) - { return LiveRangeMap[ Val ]; } + { return LiveRangeMap[Val]; } // Method used to get the Call and Return instruction list // @@ -125,10 +115,6 @@ public: // debugging method to print the live ranges // void printLiveRanges(); - }; - - - #endif diff --git a/lib/CodeGen/RegAlloc/PhyRegAlloc.h b/lib/CodeGen/RegAlloc/PhyRegAlloc.h index 4d009cfcbe..38f8dd774b 100644 --- a/lib/CodeGen/RegAlloc/PhyRegAlloc.h +++ b/lib/CodeGen/RegAlloc/PhyRegAlloc.h @@ -25,21 +25,19 @@ PhyRegAlloc PRA(*MethodI, target, &LVI); // allocate regs PRA.allocateRegisters(); - - - */ #ifndef PHY_REG_ALLOC_H #define PHY_REG_ALLOC_H -#include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/RegClass.h" #include "llvm/CodeGen/LiveRangeInfo.h" -#include "llvm/Analysis/LiveVar/MethodLiveVarInfo.h" #include "llvm/Analysis/LoopDepth.h" #include <deque> class MachineCodeForMethod; +class MachineRegInfo; +class MethodLiveVarInfo; +class MachineInstr; //---------------------------------------------------------------------------- // Class AddedInstrns: diff --git a/lib/CodeGen/RegAlloc/RegAllocCommon.h b/lib/CodeGen/RegAlloc/RegAllocCommon.h index 02b3331132..9f8abe38e7 100644 --- a/lib/CodeGen/RegAlloc/RegAllocCommon.h +++ b/lib/CodeGen/RegAlloc/RegAllocCommon.h @@ -1,11 +1,10 @@ -#include "Support/CommandLine.h" #ifndef REG_ALLOC_COMMON_H #define REG_ALLOC_COMMON_H -// THIS IS NOW SPECIFIED VIA A COMMANDLINE ARGUMENT TO LLC -// +#include "Support/CommandLine.h" + // set DEBUG_RA for printing out debug messages // if DEBUG_RA is 1 normal output messages // if DEBUG_RA is 2 extensive debug info for each instr diff --git a/lib/CodeGen/RegAlloc/RegClass.h b/lib/CodeGen/RegAlloc/RegClass.h index fe25986f40..1e5f551372 100644 --- a/lib/CodeGen/RegAlloc/RegClass.h +++ b/lib/CodeGen/RegAlloc/RegClass.h @@ -10,12 +10,12 @@ #include "llvm/CodeGen/IGNode.h" #include "llvm/CodeGen/InterferenceGraph.h" -#include "llvm/Target/TargetMachine.h" #include "llvm/Target/MachineRegInfo.h" #include <stack> #include <iostream> +class MachineRegClassInfo; -typedef std::vector<unsigned int> ReservedColorListType; +typedef std::vector<unsigned> ReservedColorListType; //----------------------------------------------------------------------------- @@ -35,14 +35,9 @@ typedef std::vector<unsigned int> ReservedColorListType; // methods are called thru a register class. // //----------------------------------------------------------------------------- -class RegClass -{ - - private: +class RegClass { const Method *const Meth; // Method we are working on - const MachineRegClassInfo *const MRC; // corresponding MRC - const unsigned RegClassID; // my int ID InterferenceGraph IG; // Interference graph - constructed by diff --git a/lib/Target/SparcV9/RegAlloc/IGNode.h b/lib/Target/SparcV9/RegAlloc/IGNode.h index b89aea32b1..01ecc13783 100644 --- a/lib/Target/SparcV9/RegAlloc/IGNode.h +++ b/lib/Target/SparcV9/RegAlloc/IGNode.h @@ -28,6 +28,8 @@ #include "llvm/CodeGen/RegAllocCommon.h" #include "llvm/CodeGen/LiveRange.h" +class LiveRange; +class RegClass; //---------------------------------------------------------------------------- // Class IGNode @@ -35,8 +37,7 @@ // Represents a node in an interference graph. //---------------------------------------------------------------------------- -class IGNode -{ +class IGNode { const int Index; // index within IGNodeList bool OnStack; // this has been pushed on to stack for coloring @@ -51,9 +52,7 @@ class IGNode // After that, never incremented/set again nor used. LiveRange *const ParentLR; // parent LR (cannot be a const) - - - public: +public: // constructor // @@ -117,8 +116,9 @@ class IGNode inline void setRegClass(RegClass *const RC) { ParentLR->setRegClass(RC); } - inline RegClass *const getRegClass() const - { return ParentLR->getRegClass(); } + inline RegClass *const getRegClass() const { + return ParentLR->getRegClass(); + } inline bool hasColor() const { return ParentLR->hasColor(); } diff --git a/lib/Target/SparcV9/RegAlloc/LiveRange.h b/lib/Target/SparcV9/RegAlloc/LiveRange.h index 8034751da9..e1e2992a69 100644 --- a/lib/Target/SparcV9/RegAlloc/LiveRange.h +++ b/lib/Target/SparcV9/RegAlloc/LiveRange.h @@ -26,13 +26,9 @@ class IGNode; // of Values. //---------------------------------------------------------------------------- -class LiveRange : public ValueSet -{ - private: - +class LiveRange : public ValueSet { RegClass *MyRegClass; // register classs (e.g., int, FP) for this LR - bool doesSpanAcrossCalls; // // Does this live range span across calls? @@ -168,7 +164,7 @@ class LiveRange : public ValueSet } inline Type::PrimitiveID getTypeID() const { - return this->getType()->getPrimitiveID(); + return getType()->getPrimitiveID(); } inline void setSuggestedColor(int Col) { @@ -176,8 +172,10 @@ class LiveRange : public ValueSet if(SuggestedColor == -1 ) SuggestedColor = Col; +#if 0 else if (DEBUG_RA) std::cerr << "Already has a suggested color " << Col << "\n"; +#endif } inline unsigned getSuggestedColor() const { @@ -206,12 +204,6 @@ class LiveRange : public ValueSet inline unsigned getSpillCost() const { return SpillCost; } - }; - - - - #endif - diff --git a/lib/Target/SparcV9/RegAlloc/LiveRangeInfo.h b/lib/Target/SparcV9/RegAlloc/LiveRangeInfo.h index 9e7ef06fe2..09aca44f30 100644 --- a/lib/Target/SparcV9/RegAlloc/LiveRangeInfo.h +++ b/lib/Target/SparcV9/RegAlloc/LiveRangeInfo.h @@ -1,44 +1,39 @@ -/* Title: LiveRangeInfo.h -*- C++ -*- - Author: Ruchira Sasanka - Date: Jun 30, 01 - Purpose: - - This file contains the class LiveRangeInfo which constructs and keeps - the LiveRangMap which contains all the live ranges used in a method. - - Assumptions: - - All variables (llvm Values) are defined before they are used. However, a - constant may not be defined in the machine instruction stream if it can be - used as an immediate value within a machine instruction. However, register - allocation does not have to worry about immediate constants since they - do not require registers. - - Since an llvm Value has a list of uses associated, it is sufficient to - record only the defs in a Live Range. - -*/ - +//===-- LiveRangeInfo.h - Track all LiveRanges for a Method ------*- C++ -*-==// +// +// This file contains the class LiveRangeInfo which constructs and keeps +// the LiveRangMap which contains all the live ranges used in a method. +// +// Assumptions: +// +// All variables (llvm Values) are defined before they are used. However, a +// constant may not be defined in the machine instruction stream if it can be +// used as an immediate value within a machine instruction. However, register +// allocation does not have to worry about immediate constants since they +// do not require registers. +// +// Since an llvm Value has a list of uses associated, it is sufficient to +// record only the defs in a Live Range. +// +//===----------------------------------------------------------------------===// #ifndef LIVE_RANGE_INFO_H #define LIVE_RANGE_INFO_H -#include "llvm/Type.h" -#include "llvm/Method.h" -#include "llvm/CodeGen/MachineInstr.h" - -#include "llvm/Analysis/LiveVar/LiveVarSet.h" - -#include "llvm/CodeGen/IGNode.h" -#include "llvm/CodeGen/LiveRange.h" -#include "llvm/CodeGen/RegClass.h" +#include "Support/HashExtras.h" +class LiveRange; +class MachineInstr; +class LiveVarSet; +class RegClass; +class MachineRegInfo; +class TargetMachine; +class Value; +class Method; +class Instruction; typedef std::hash_map<const Value*, LiveRange*> LiveRangeMapType; typedef std::vector<const MachineInstr*> CallRetInstrListType; - - //---------------------------------------------------------------------------- // Class LiveRangeInfo // @@ -46,13 +41,8 @@ typedef std::vector<const MachineInstr*> CallRetInstrListType; // ranges used in a method. Also contain methods to coalesce live ranges. //---------------------------------------------------------------------------- -class LiveRangeInfo -{ - -private: - +class LiveRangeInfo { const Method *const Meth; // Method for which live range info is held - LiveRangeMapType LiveRangeMap; // A map from Value * to LiveRange * to // record all live ranges in a method // created by constructLiveRanges @@ -96,9 +86,9 @@ public: // in machine specific code) to the common live range map // inline void addLRToMap(const Value *Val, LiveRange *LR) { - assert( Val && LR && "Val/LR is NULL!\n"); - assert( (! LiveRangeMap[ Val ]) && "LR already set in map"); - LiveRangeMap[ Val ] = LR; + assert(Val && LR && "Val/LR is NULL!\n"); + assert((!LiveRangeMap[Val]) && "LR already set in map"); + LiveRangeMap[Val] = LR; } // return the common live range map for this method @@ -109,7 +99,7 @@ public: // Method sed to get the corresponding live range of a Value // inline LiveRange *getLiveRangeForValue( const Value *const Val) - { return LiveRangeMap[ Val ]; } + { return LiveRangeMap[Val]; } // Method used to get the Call and Return instruction list // @@ -125,10 +115,6 @@ public: // debugging method to print the live ranges // void printLiveRanges(); - }; - - - #endif diff --git a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h index 4d009cfcbe..38f8dd774b 100644 --- a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h +++ b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.h @@ -25,21 +25,19 @@ PhyRegAlloc PRA(*MethodI, target, &LVI); // allocate regs PRA.allocateRegisters(); - - - */ #ifndef PHY_REG_ALLOC_H #define PHY_REG_ALLOC_H -#include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/RegClass.h" #include "llvm/CodeGen/LiveRangeInfo.h" -#include "llvm/Analysis/LiveVar/MethodLiveVarInfo.h" #include "llvm/Analysis/LoopDepth.h" #include <deque> class MachineCodeForMethod; +class MachineRegInfo; +class MethodLiveVarInfo; +class MachineInstr; //---------------------------------------------------------------------------- // Class AddedInstrns: diff --git a/lib/Target/SparcV9/RegAlloc/RegAllocCommon.h b/lib/Target/SparcV9/RegAlloc/RegAllocCommon.h index 02b3331132..9f8abe38e7 100644 --- a/lib/Target/SparcV9/RegAlloc/RegAllocCommon.h +++ b/lib/Target/SparcV9/RegAlloc/RegAllocCommon.h @@ -1,11 +1,10 @@ -#include "Support/CommandLine.h" #ifndef REG_ALLOC_COMMON_H #define REG_ALLOC_COMMON_H -// THIS IS NOW SPECIFIED VIA A COMMANDLINE ARGUMENT TO LLC -// +#include "Support/CommandLine.h" + // set DEBUG_RA for printing out debug messages // if DEBUG_RA is 1 normal output messages // if DEBUG_RA is 2 extensive debug info for each instr diff --git a/lib/Target/SparcV9/RegAlloc/RegClass.h b/lib/Target/SparcV9/RegAlloc/RegClass.h index fe25986f40..1e5f551372 100644 --- a/lib/Target/SparcV9/RegAlloc/RegClass.h +++ b/lib/Target/SparcV9/RegAlloc/RegClass.h @@ -10,12 +10,12 @@ #include "llvm/CodeGen/IGNode.h" #include "llvm/CodeGen/InterferenceGraph.h" -#include "llvm/Target/TargetMachine.h" #include "llvm/Target/MachineRegInfo.h" #include <stack> #include <iostream> +class MachineRegClassInfo; -typedef std::vector<unsigned int> ReservedColorListType; +typedef std::vector<unsigned> ReservedColorListType; //----------------------------------------------------------------------------- @@ -35,14 +35,9 @@ typedef std::vector<unsigned int> ReservedColorListType; // methods are called thru a register class. // //----------------------------------------------------------------------------- -class RegClass -{ - - private: +class RegClass { const Method *const Meth; // Method we are working on - const MachineRegClassInfo *const MRC; // corresponding MRC - const unsigned RegClassID; // my int ID InterferenceGraph IG; // Interference graph - constructed by |