20 "Interval Partition Construction",
true,
true)
28 for (
unsigned i = 0, e = Intervals.size(); i != e; ++i)
36 for(
unsigned i = 0, e = Intervals.size(); i != e; ++i)
37 Intervals[i]->
print(O);
44 void IntervalPartition::addIntervalToPartition(
Interval *
I) {
45 Intervals.push_back(I);
58 void IntervalPartition::updatePredecessors(
Interval *
Int) {
71 assert(I !=
intervals_end(&F) &&
"No intervals in function!?!?!");
73 addIntervalToPartition(RootInterval = *I);
79 addIntervalToPartition(*I);
83 for (
unsigned i = 0, e = Intervals.size(); i != e; ++i)
84 updatePredecessors(Intervals[i]);
95 assert(IP.
getRootInterval() &&
"Cannot operate on empty IntervalPartitions!");
99 assert(I !=
intervals_end(IP) &&
"No intervals in interval partition!?!?!");
101 addIntervalToPartition(RootInterval = *I);
107 addIntervalToPartition(*I);
111 for (
unsigned i = 0, e = Intervals.size(); i != e; ++i)
112 updatePredecessors(Intervals[i]);
function_interval_iterator intervals_end(Function *)
The main container class for the LLVM Intermediate Representation.
virtual void print(raw_ostream &O, const Module *=0) const
virtual bool runOnFunction(Function &F)
std::vector< BasicBlock * >::iterator node_iterator
ID
LLVM Calling Convention Representation.
function_interval_iterator intervals_begin(Function *F, bool DeleteInts=true)
void clear()
clear - Remove all entries.
LLVM Basic Block Representation.
std::vector< BasicBlock * > Nodes
INITIALIZE_PASS(IntervalPartition,"intervals","Interval Partition Construction", true, true) void IntervalPartition
void insert(KeyT a, KeyT b, ValT y)
std::vector< BasicBlock * > Predecessors
Interval * getRootInterval()
BasicBlock * getHeaderNode() const
std::vector< BasicBlock * > Successors
std::vector< BasicBlock * >::iterator succ_iterator
Interval * getBlockInterval(BasicBlock *BB)