summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SpillPlacement.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-18 21:13:27 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-18 21:13:27 +0000
commit267f6c1ab2a474af6e2bb90aa89b3b8c4be87142 (patch)
tree0cbcdf1d6b00ec9a82e3bb9e042f6a54d9b47a5e /llvm/lib/CodeGen/SpillPlacement.h
parentd661a853fd3da74eff3525ea3c3af1cae831db3e (diff)
downloadbcm5719-llvm-267f6c1ab2a474af6e2bb90aa89b3b8c4be87142.tar.gz
bcm5719-llvm-267f6c1ab2a474af6e2bb90aa89b3b8c4be87142.zip
Add RAGreedy methods for splitting live ranges around regions.
Analyze the live range's behavior entering and leaving basic blocks. Compute an interference pattern for each allocation candidate, and use SpillPlacement to find an optimal region where that register can be live. This code is still not enabled. llvm-svn: 123774
Diffstat (limited to 'llvm/lib/CodeGen/SpillPlacement.h')
-rw-r--r--llvm/lib/CodeGen/SpillPlacement.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SpillPlacement.h b/llvm/lib/CodeGen/SpillPlacement.h
index 0611180ef4a..ef2d516cdce 100644
--- a/llvm/lib/CodeGen/SpillPlacement.h
+++ b/llvm/lib/CodeGen/SpillPlacement.h
@@ -89,13 +89,16 @@ public:
bool placeSpills(const SmallVectorImpl<BlockConstraint> &LiveBlocks,
BitVector &RegBundles);
+ /// getBlockFrequency - Return the estimated block execution frequency per
+ /// function invocation.
+ float getBlockFrequency(const MachineBasicBlock*);
+
private:
virtual bool runOnMachineFunction(MachineFunction&);
virtual void getAnalysisUsage(AnalysisUsage&) const;
virtual void releaseMemory();
void activate(unsigned);
- float getBlockFrequency(const MachineBasicBlock*);
void prepareNodes(const SmallVectorImpl<BlockConstraint>&);
void iterate(const SmallVectorImpl<unsigned>&);
};
OpenPOWER on IntegriCloud