19#ifndef LLVM_ANALYSIS_INTERVAL_H
20#define LLVM_ANALYSIS_INTERVAL_H
48 Nodes.push_back(Header);
89 return HeaderNode ==
I.HeaderNode;
100 return I->Successors.begin();
103 return I->Successors.end();
110 return I->Predecessors.begin();
113 return I->Predecessors.end();
This file defines the little GraphTraits<X> template class that should be specialized by classes that...
LLVM Basic Block Representation.
Interval Class - An Interval is a set of nodes defined such that every node in the interval has all o...
std::vector< BasicBlock * > Successors
Successors - List of BasicBlocks that are reachable directly from nodes in this interval,...
bool operator==(const Interval &I) const
Equality operator.
std::vector< BasicBlock * >::iterator pred_iterator
void print(raw_ostream &O) const
print - Show contents in human readable format...
std::vector< BasicBlock * >::iterator succ_iterator
bool isSuccessor(BasicBlock *BB) const
isSuccessor - find out if a basic block is a successor of this Interval
std::vector< BasicBlock * > Nodes
Nodes - The basic blocks in this interval.
std::vector< BasicBlock * > Predecessors
Predecessors - List of BasicBlocks that have this Interval's header block as one of their successors.
BasicBlock * getHeaderNode() const
bool contains(BasicBlock *BB) const
contains - Find out if a basic block is in this interval
Interval(BasicBlock *Header)
std::vector< BasicBlock * >::iterator node_iterator
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.
Interval::succ_iterator succ_end(Interval *I)
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...
Interval::pred_iterator pred_end(Interval *I)
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...
static ChildIteratorType child_end(NodeRef N)
Interval::succ_iterator ChildIteratorType
static NodeRef getEntryNode(Interval *I)
static ChildIteratorType child_begin(NodeRef N)
nodes_iterator/begin/end - Allow iteration over all nodes in the graph
static NodeRef getEntryNode(Inverse< Interval * > G)
static ChildIteratorType child_end(NodeRef N)
Interval::pred_iterator ChildIteratorType
static ChildIteratorType child_begin(NodeRef N)