diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-01-31 04:56:07 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-01-31 04:56:07 +0000 |
commit | 32bdd4ea65f58e3227176b9a5a43013fb13f06a5 (patch) | |
tree | f65ed96806316bd2de5cf13592dab8246d124b51 /include/llvm/CodeGen/LiveIntervalAnalysis.h | |
parent | a4dd6743e7b300a62b0ee288912657123dafe2f6 (diff) |
Several performance enhancements and cleanups from Chris.
Simplification of LiveIntervals::Interval::overlaps() and addition of
examples to overlaps() and liveAt() to make them clearer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11028 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/LiveIntervalAnalysis.h')
-rw-r--r-- | include/llvm/CodeGen/LiveIntervalAnalysis.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h index 7cf627b355..59441fb3bb 100644 --- a/include/llvm/CodeGen/LiveIntervalAnalysis.h +++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h @@ -13,8 +13,8 @@ // for register v if there is no instruction with number j' > j such // that v is live at j' abd there is no instruction with number i' < i // such that v is live at i'. In this implementation intervals can -// have holes, i.e. an interval might look like [1,20], [50,65], -// [1000,1001] +// have holes, i.e. an interval might look like [1,20), [50,65), +// [1000,1001) // //===----------------------------------------------------------------------===// @@ -22,11 +22,7 @@ #define LLVM_CODEGEN_LIVEINTERVALS_H #include "llvm/CodeGen/MachineFunctionPass.h" -#include "llvm/CodeGen/MachineBasicBlock.h" -#include <iostream> #include <list> -#include <map> -#include <vector> namespace llvm { @@ -113,6 +109,10 @@ namespace llvm { public: virtual void getAnalysisUsage(AnalysisUsage &AU) const; + virtual void releaseMemory(); + + /// runOnMachineFunction - pass entry point + virtual bool runOnMachineFunction(MachineFunction&); Intervals& getIntervals() { return intervals_; } @@ -134,9 +134,6 @@ namespace llvm { unsigned rep(unsigned reg); private: - /// runOnMachineFunction - pass entry point - bool runOnMachineFunction(MachineFunction&); - /// computeIntervals - compute live intervals void computeIntervals(); @@ -164,7 +161,10 @@ namespace llvm { bool overlapsAliases(const Interval& lhs, const Interval& rhs) const; - unsigned getInstructionIndex(MachineInstr* instr) const; + unsigned getInstructionIndex(MachineInstr* instr) const { + assert(mi2iMap_.count(instr) && "instruction not assigned a number"); + return mi2iMap_.find(instr)->second; + } void printRegName(unsigned reg) const; }; |