31 "Interval Partition Construction",
true,
true)
43 RootInterval =
nullptr;
54void IntervalPartition::addIntervalToPartition(
Interval *
I) {
55 Intervals.push_back(
I);
58 for (Interval::node_iterator It =
I->Nodes.begin(), End =
I->Nodes.end();
67void IntervalPartition::updatePredecessors(
Interval *
Int) {
80 addIntervalToPartition(RootInterval = *
I);
86 addIntervalToPartition(*
I);
91 updatePredecessors(
I);
106 addIntervalToPartition(RootInterval = *
I);
112 addIntervalToPartition(*
I);
117 updatePredecessors(
I);
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
LLVM Basic Block Representation.
FunctionPass class - This class is used to implement most global optimizations.
void insert(KeyT a, KeyT b, ValT y)
insert - Add a mapping of [a;b] to y, coalesce with adjacent intervals.
void clear()
clear - Remove all entries.
Interval * getRootInterval()
void print(raw_ostream &O, const Module *=nullptr) const override
print - Print out the internal state of the pass.
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...
std::vector< BasicBlock * > Predecessors
Predecessors - List of BasicBlocks that have this Interval's header block as one of their successors.
A Module instance is used to store all the information related to an LLVM module.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
function_interval_iterator intervals_end(Function *)
function_interval_iterator intervals_begin(Function *F, bool DeleteInts=true)
void initializeIntervalPartitionPass(PassRegistry &)