23 #ifndef LLVM_ANALYSIS_INTERVALPARTITION_H
24 #define LLVM_ANALYSIS_INTERVALPARTITION_H
41 typedef std::map<BasicBlock*, Interval*> IntervalMapTy;
44 typedef std::vector<Interval*> IntervalListTy;
46 std::vector<Interval*> Intervals;
89 const std::vector<Interval*> &
getIntervals()
const {
return Intervals; }
106 void updatePredecessors(
Interval *Int);
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
A Module instance is used to store all the information related to an LLVM module. ...
bool isDegeneratePartition()
Interval Class - An Interval is a set of nodes defined such that every node in the interval has all o...
const_iterator find(KeyT x) const
find - Return an iterator pointing to the first interval ending at or after x, or end()...
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
const_iterator end() const
void print(raw_ostream &O, const Module *=nullptr) const override
print - Print out the internal state of the pass.
LLVM Basic Block Representation.
Represent the analysis usage information of a pass.
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass...
FunctionPass class - This class is used to implement most global optimizations.
void initializeIntervalPartitionPass(PassRegistry &)
Interval * getRootInterval()
void setPreservesAll()
Set by analyses that do not transform their input at all.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
const std::vector< Interval * > & getIntervals() const
This class implements an extremely fast bulk output stream that can only output to a stream...
Interval * getBlockInterval(BasicBlock *BB)