Go to the documentation of this file.
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; }
103 void updatePredecessors(
Interval *Int);
108 #endif // LLVM_ANALYSIS_INTERVALPARTITION_H
This is an optimization pass for GlobalISel generic memory operations.
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Interval * getRootInterval()
LLVM Basic Block Representation.
bool isDegeneratePartition()
Represent the analysis usage information of a pass.
This class implements an extremely fast bulk output stream that can only output to a stream.
Interval Class - An Interval is a set of nodes defined such that every node in the interval has all o...
Interval * getBlockInterval(BasicBlock *BB)
void print(raw_ostream &O, const Module *=nullptr) const override
print - Print out the internal state of the pass.
const_iterator find(KeyT x) const
find - Return an iterator pointing to the first interval ending at or after x, or end().
@ BasicBlock
Various leaf nodes.
A Module instance is used to store all the information related to an LLVM module.
const_iterator end() const
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
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
FunctionPass class - This class is used to implement most global optimizations.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
std::pair< uint64_t, uint64_t > Interval