aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-11-29 01:06:25 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-11-29 01:06:25 +0000
commit96c61315a0a7a66a7e4c55a507251d6da24af46c (patch)
treeecba7c0510d1cf40e68c3e55cb26010034591b11 /include/llvm/CodeGen/LiveIntervalAnalysis.h
parent1f458158cf263e8b1b0f92e7c80bd5d22489a180 (diff)
downloadexternal_llvm-96c61315a0a7a66a7e4c55a507251d6da24af46c.zip
external_llvm-96c61315a0a7a66a7e4c55a507251d6da24af46c.tar.gz
external_llvm-96c61315a0a7a66a7e4c55a507251d6da24af46c.tar.bz2
Fixed various live interval splitting bugs / compile time issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44428 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/LiveIntervalAnalysis.h')
-rw-r--r--include/llvm/CodeGen/LiveIntervalAnalysis.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h
index c803fbd..a83d3de 100644
--- a/include/llvm/CodeGen/LiveIntervalAnalysis.h
+++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h
@@ -277,10 +277,13 @@ namespace llvm {
MachineInstr *DefMI, unsigned index, unsigned i,
bool isSS, int slot, unsigned reg);
- bool anyKillInMBBAfterIdx(const LiveInterval &li,
- MachineBasicBlock *MBB, unsigned Idx,
- const VNInfo *VNI = NULL) const;
+ /// anyKillInMBBAfterIdx - Returns true if there is a kill of the specified
+ /// VNInfo that's after the specified index but is within the basic block.
+ bool anyKillInMBBAfterIdx(const LiveInterval &li, const VNInfo *VNI,
+ MachineBasicBlock *MBB, unsigned Idx) const;
+ /// intervalIsInOneMBB - Returns true if the specified interval is entirely
+ /// within a single basic block.
bool intervalIsInOneMBB(const LiveInterval &li) const;
/// rewriteInstructionForSpills, rewriteInstructionsForSpills - Helper functions
@@ -301,7 +304,9 @@ namespace llvm {
VirtRegMap &vrm, SSARegMap *RegMap, const TargetRegisterClass* rc,
SmallVector<int, 4> &ReMatIds, const LoopInfo *loopInfo,
BitVector &SpillMBBs,
- std::map<unsigned, std::pair<int, unsigned> > &SpillIdxes,
+ std::map<unsigned, std::pair<int, bool> > &SpillIdxes,
+ BitVector &RestoreMBBs,
+ std::map<unsigned, std::pair<int, bool> > &RestoreIdxes,
std::map<unsigned,unsigned> &NewVRegs,
std::vector<LiveInterval*> &NewLIs);