GPUOcelot
Classes | Public Types | Public Member Functions | Public Attributes

analysis::StructuralAnalysis Class Reference

#include <StructuralAnalysis.h>

Inheritance diagram for analysis::StructuralAnalysis:
Inheritance graph
[legend]
Collaboration diagram for analysis::StructuralAnalysis:
Collaboration graph
[legend]

List of all members.

Classes

struct  Node

Public Types

enum  EdgeClass { TREE, FORWARD, BACK, CROSS }
enum  RegionTy {
  Nil, Block, IfThen, IfThenElse,
  Case, SelfLoop, NaturalLoop, Improper,
  Unreachable
}
typedef std::pair
< ir::ControlFlowGraph::iterator,
ir::ControlFlowGraph::iterator
EdgeLLVMTy
typedef std::vector< EdgeLLVMTyEdgeVecTy
typedef std::unordered_set
< ir::ControlFlowGraph::iterator
BBSetTy
typedef std::vector
< ir::ControlFlowGraph::iterator
BBVecTy
typedef struct
analysis::StructuralAnalysis::Node 
NodeTy
typedef std::set< NodeTy * > NodeSetTy
typedef std::unordered_map
< ir::ControlFlowGraph::iterator,
NodeTy * > 
BB2NodeMapTy
typedef std::map< NodeTy
*, NodeTy * > 
Node2NodeMapTy
typedef std::map< NodeTy
*, RegionTy
Node2RegionTyMapTy
typedef std::map< NodeTy
*, NodeSetTy * > 
Node2NodeSetMapTy
typedef std::pair< NodeTy
*, NodeTy * > 
EdgeTy
typedef std::map< EdgeTy,
EdgeClass
Edge2ClassMapTy
typedef std::set< EdgeTyEdgeSetTy
typedef std::map< NodeTy *, bool > VisitMapTy

Public Member Functions

 ~StructuralAnalysis ()
void analyze (ir::IRKernel &k)
void write (std::ostream &stream) const

Public Attributes

NodeSetTy Net
EdgeVecTy unstructuredBRVec
BB2NodeMapTy BB2NodeMap
NodeSetTy unreachableNodeSet

Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
TREE 
FORWARD 
BACK 
CROSS 
Enumerator:
Nil 
Block 
IfThen 
IfThenElse 
Case 
SelfLoop 
NaturalLoop 
Improper 
Unreachable 

Constructor & Destructor Documentation

analysis::StructuralAnalysis::~StructuralAnalysis ( )

Member Function Documentation

void analysis::StructuralAnalysis::analyze ( ir::IRKernel k) [virtual]
void analysis::StructuralAnalysis::write ( std::ostream &  stream) const

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines