aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/RegAlloc/PhyRegAlloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/RegAlloc/PhyRegAlloc.h')
-rw-r--r--lib/CodeGen/RegAlloc/PhyRegAlloc.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/CodeGen/RegAlloc/PhyRegAlloc.h b/lib/CodeGen/RegAlloc/PhyRegAlloc.h
index 438f2c5..6dcfa1f 100644
--- a/lib/CodeGen/RegAlloc/PhyRegAlloc.h
+++ b/lib/CodeGen/RegAlloc/PhyRegAlloc.h
@@ -29,6 +29,7 @@ class FunctionLiveVarInfo;
class MachineInstr;
class LoopInfo;
class RegClass;
+class Constant;
//----------------------------------------------------------------------------
// Class AddedInstrns:
@@ -77,6 +78,8 @@ class PhyRegAlloc : public FunctionPass {
AddedInstrns AddedInstrAtEntry; // to store instrns added at entry
const LoopInfo *LoopDepthCalc; // to calculate loop depths
+ std::map<const Function *, Constant *> FnAllocState;
+
PhyRegAlloc(const PhyRegAlloc&); // DO NOT IMPLEMENT
void operator=(const PhyRegAlloc&); // DO NOT IMPLEMENT
public:
@@ -89,6 +92,8 @@ public:
///
virtual bool runOnFunction (Function &F);
+ virtual bool doFinalization (Module &M);
+
virtual void getAnalysisUsage (AnalysisUsage &AU) const;
const char *getPassName () const {
@@ -108,6 +113,7 @@ private:
void addInterferencesForArgs();
void createIGNodeListsAndIGs();
void buildInterferenceGraphs();
+ void saveState();
void setCallInterferences(const MachineInstr *MI,
const ValueSet *LVSetAft);