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