20 #ifndef LLVM_ANALYSIS_INTERVAL_H
21 #define LLVM_ANALYSIS_INTERVAL_H
48 Nodes.push_back(Header);
93 return HeaderNode == I.HeaderNode;
Interval::pred_iterator ChildIteratorType
Interval Class - An Interval is a set of nodes defined such that every node in the interval has all o...
static ChildIteratorType child_begin(NodeRef N)
nodes_iterator/begin/end - Allow iteration over all nodes in the graph
Interval::succ_iterator ChildIteratorType
static ChildIteratorType child_end(NodeRef N)
std::vector< BasicBlock * >::iterator node_iterator
Interval::succ_iterator succ_begin(Interval *I)
succ_begin/succ_end - define methods so that Intervals may be used just like BasicBlocks can with the...
static ChildIteratorType child_begin(NodeRef N)
bool contains(BasicBlock *BB) const
contains - Find out if a basic block is in this interval
Interval::succ_iterator succ_end(Interval *I)
LLVM Basic Block Representation.
void print(raw_ostream &O) const
print - Show contents in human readable format...
Interval::pred_iterator pred_begin(Interval *I)
pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the...
Interval::pred_iterator pred_end(Interval *I)
std::vector< BasicBlock * > Nodes
Nodes - The basic blocks in this interval.
bool isLoop() const
isLoop - Find out if there is a back edge in this interval...
static NodeRef getEntryNode(Interval *I)
std::vector< BasicBlock * > Predecessors
Predecessors - List of BasicBlocks that have this Interval's header block as one of their successors...
bool operator==(const Interval &I) const
Equality operator.
BasicBlock * getHeaderNode() const
std::vector< BasicBlock * > Successors
Successors - List of BasicBlocks that are reachable directly from nodes in this interval, but are not in the interval themselves.
static NodeRef getEntryNode(Inverse< Interval * > G)
bool isSuccessor(BasicBlock *BB) const
isSuccessor - find out if a basic block is a successor of this Interval
static ChildIteratorType child_end(NodeRef N)
std::vector< BasicBlock * >::iterator succ_iterator
This class implements an extremely fast bulk output stream that can only output to a stream...
Interval(BasicBlock *Header)
std::vector< BasicBlock * >::iterator pred_iterator