GPUOcelot
Public Types | Public Member Functions

analysis::BranchInfo Class Reference

#include <BranchInfo.h>

Collaboration diagram for analysis::BranchInfo:
Collaboration graph
[legend]

List of all members.

Public Types

typedef DataflowGraph::Block Block
typedef DirectionalGraph::node_type node_type
typedef DirectionalGraph::node_set node_set
typedef std::set< const Block * > touched_blocks

Public Member Functions

 BranchInfo (const Block *block, const Block *postDominator, const DataflowGraph::Instruction &dfgInstruction, DivergenceGraph &divergGraph)
bool operator< (const BranchInfo &x) const
bool operator<= (const BranchInfo &x) const
bool operator> (const BranchInfo &x) const
bool operator>= (const BranchInfo &x) const
bool isTainted (const node_type &node) const
 Tells if a node is control dependent on a divergent branch instruction.
void populate ()
 Compute the influence of the branch in variables and blocks.
const Blockblock () const
 Returns the pointer to the block that holds the branch instruction.
const Blockbranch () const
 Returns the pointer to the target block of the branch.
const BlockfallThrough () const
 Returns the pointer to the fallthtrough block.
const BlockpostDominator () const
 Returns the pointer to the block that postdominates block.
const DirectionalGraph::node_typepredicate () const
 Returns the the predicate ID, in the kernel->DFG, in SSA form.
const DataflowGraph::Instructioninstruction () const
 Returns the reference to the branch instruction.

Member Typedef Documentation

typedef std::set<const Block*> analysis::BranchInfo::touched_blocks

Constructor & Destructor Documentation

home andrew repositories read only gpuocelot ocelot ocelot analysis implementation BranchInfo cpp home andrew repositories read only gpuocelot ocelot ocelot analysis implementation BranchInfo cpp analysis::BranchInfo::BranchInfo ( const Block block,
const Block postDominator,
const DataflowGraph::Instruction dfgInstruction,
DivergenceGraph divergGraph 
)

Member Function Documentation

const Block* analysis::BranchInfo::block ( ) const [inline]

Returns the pointer to the block that holds the branch instruction.

const Block* analysis::BranchInfo::branch ( ) const [inline]

Returns the pointer to the target block of the branch.

const Block* analysis::BranchInfo::fallThrough ( ) const [inline]

Returns the pointer to the fallthtrough block.

const DataflowGraph::Instruction& analysis::BranchInfo::instruction ( ) const [inline]

Returns the reference to the branch instruction.

bool analysis::BranchInfo::isTainted ( const node_type node) const

Tells if a node is control dependent on a divergent branch instruction.

bool analysis::BranchInfo::operator< ( const BranchInfo x) const
bool analysis::BranchInfo::operator<= ( const BranchInfo x) const
bool analysis::BranchInfo::operator> ( const BranchInfo x) const
bool analysis::BranchInfo::operator>= ( const BranchInfo x) const
void analysis::BranchInfo::populate ( )

Compute the influence of the branch in variables and blocks.

const Block* analysis::BranchInfo::postDominator ( ) const [inline]

Returns the pointer to the block that postdominates block.

const DirectionalGraph::node_type& analysis::BranchInfo::predicate ( ) const [inline]

Returns the the predicate ID, in the kernel->DFG, in SSA form.


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