LLVM  3.7.0
Classes | Namespaces | Macros | Functions
RegionIterator.h File Reference
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Analysis/RegionInfo.h"
#include "llvm/IR/CFG.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for RegionIterator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::RNSuccIterator< NodeType, BlockT, RegionT >
 Hierarchical RegionNode successor iterator. More...
 
class  llvm::RNSuccIterator< FlatIt< NodeType >, BlockT, RegionT >
 Flat RegionNode iterator. More...
 
struct  llvm::GraphTraits< RegionInfo * >
 
struct  llvm::GraphTraits< RegionInfoPass * >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define RegionNodeGraphTraits(NodeT, BlockT, RegionT)
 
#define RegionGraphTraits(RegionT, NodeT)
 

Functions

template<class NodeType , class BlockT , class RegionT >
RNSuccIterator< NodeType,
BlockT, RegionT > 
llvm::succ_begin (NodeType *Node)
 
template<class NodeType , class BlockT , class RegionT >
RNSuccIterator< NodeType,
BlockT, RegionT > 
llvm::succ_end (NodeType *Node)
 
 llvm::RegionNodeGraphTraits (RegionNode, BasicBlock, Region)
 
 llvm::RegionGraphTraits (Region, RegionNode)
 

Macro Definition Documentation

#define RegionGraphTraits (   RegionT,
  NodeT 
)
Value:
template<> struct GraphTraits<RegionT*> \
: public GraphTraits<NodeT*> { \
typedef df_iterator<NodeType*> nodes_iterator; \
static NodeType *getEntryNode(RegionT* R) { \
return R->getNode(R->getEntry()); \
} \
static nodes_iterator nodes_begin(RegionT* R) { \
return nodes_iterator::begin(getEntryNode(R)); \
} \
static nodes_iterator nodes_end(RegionT* R) { \
return nodes_iterator::end(getEntryNode(R)); \
} \
}; \
template<> struct GraphTraits<FlatIt<RegionT*> > \
: public GraphTraits<FlatIt<NodeT*> > { \
typedef df_iterator<NodeType*, SmallPtrSet<NodeType*, 8>, false, \
GraphTraits<FlatIt<NodeType*> > > nodes_iterator; \
static NodeType *getEntryNode(RegionT* R) { \
return R->getBBNode(R->getEntry()); \
} \
static nodes_iterator nodes_begin(RegionT* R) { \
return nodes_iterator::begin(getEntryNode(R)); \
} \
static nodes_iterator nodes_end(RegionT* R) { \
return nodes_iterator::end(getEntryNode(R)); \
} \
}
const_iterator end(StringRef path)
Get end iterator over path.
Definition: Path.cpp:240
const_iterator begin(StringRef path)
Get begin iterator over path.
Definition: Path.cpp:232
NodeType
ISD::NodeType enum - This enum defines the target-independent operators for a SelectionDAG.
Definition: ISDOpcodes.h:39

Definition at line 276 of file RegionIterator.h.

#define RegionNodeGraphTraits (   NodeT,
  BlockT,
  RegionT 
)
Value:
template<> struct GraphTraits<NodeT*> { \
typedef NodeT NodeType; \
typedef RNSuccIterator<NodeType, BlockT, RegionT> ChildIteratorType; \
static NodeType *getEntryNode(NodeType* N) { return N; } \
static inline ChildIteratorType child_begin(NodeType *N) { \
return RNSuccIterator<NodeType, BlockT, RegionT>(N); \
} \
static inline ChildIteratorType child_end(NodeType *N) { \
return RNSuccIterator<NodeType, BlockT, RegionT>(N, true); \
} \
}; \
template<> struct GraphTraits<FlatIt<NodeT*>> { \
typedef NodeT NodeType; \
typedef RNSuccIterator<FlatIt<NodeT>, BlockT, RegionT > ChildIteratorType; \
static NodeType *getEntryNode(NodeType* N) { return N; } \
static inline ChildIteratorType child_begin(NodeType *N) { \
return RNSuccIterator<FlatIt<NodeType>, BlockT, RegionT>(N); \
} \
static inline ChildIteratorType child_end(NodeType *N) { \
return RNSuccIterator<FlatIt<NodeType>, BlockT, RegionT>(N, true); \
} \
}
NodeType
ISD::NodeType enum - This enum defines the target-independent operators for a SelectionDAG.
Definition: ISDOpcodes.h:39
#define N

Definition at line 252 of file RegionIterator.h.