25 #ifndef _JIT_COMPILER2_LOOPBASE
26 #define _JIT_COMPILER2_LOOPBASE
96 typedef typename LoopListTy::iterator
iterator;
112 return loops.begin();
118 return loops.rbegin();
131 loops.push_back(loop);
167 return std::make_pair(empty.begin(),empty.end());
169 return std::make_pair(it->second.begin(),it->second.end());
173 it.first != it.second; ++it.first) {
188 if (!inner || inner == outer) {
196 if (inner == outer) {
215 for (
typename LoopListTy::iterator
i =
loops.begin(),
e =
loops.end();
void set_parent(LoopBase *outer_loop)
bool is_inner_loop(LoopType *inner, LoopType *outer) const
Test if a loop is a strictly inner loop of another loop.
bool is_loop_header(NodeType *BI) const
LoopType * add_loop(NodeType *header, NodeType *exit)
LoopBase(NodeType *header, NodeType *exit)
void add_top_loop(LoopType *loop)
NodeType * get_exit() const
loop_iterator loop_begin()
void insert_loop_header(NodeType *node, LoopType *loop)
alloc::vector< LoopType * >::type LoopListTy
loop_iterator loop_begin()
_Base::const_iterator const_iterator
LoopListTy::reverse_iterator reverse_iterator
void add_inner_loop(LoopBase *inner_loop)
alloc::map< NodeType *, LoopType * >::type loop_map
LoopBase< NodeType > LoopType
LoopType::LoopSetTy LoopSetTy
LoopSetTy::iterator loop_iterator
LoopBase * get_parent() const
std::vector< T, Allocator< T > > type
bool is_backedge(NodeType *src, NodeType *header) const
LoopSetTy::iterator loop_iterator
LoopSetTy::const_iterator const_loop_iterator
alloc::map< NodeType *, LoopSetTy >::type loop_header_map
LoopListTy::iterator iterator
std::pair< const_loop_iterator, const_loop_iterator > ConstLoopIteratorPair
int loop_nest(LoopType *loop) const
TODO: cache?
bool is_reducible() const
NodeType * get_header() const
reverse_iterator rbegin()
void set_loop(NodeType *node, LoopType *loop)
alloc::unordered_set< LoopBase * >::type LoopSetTy
LoopType * get_Loop(NodeType *BI) const
Get the inner most loop which contains BI or NULL if not contained in any loop.
ConstLoopIteratorPair get_Loops_from_header(NodeType *BI) const