gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ControlFlowInfo Class Reference

#include <kernel_cfg.hh>

Static Public Member Functions

static void assignImmediatePostDominators (const std::vector< GPUStaticInst * > &instructions)
 Compute immediate post-dominator instruction for kernel instructions. More...
 

Private Member Functions

 ControlFlowInfo (const std::vector< GPUStaticInst * > &instructions)
 
GPUStaticInstlastInstruction (const BasicBlock *block) const
 
BasicBlockbasicBlock (int inst_addr) const
 
BasicBlockpostDominator (const BasicBlock *block) const
 
void createBasicBlocks ()
 
void connectBasicBlocks ()
 
void findPostDominators ()
 
void findImmediatePostDominators ()
 
void printBasicBlocks () const
 
void printBasicBlockDot () const
 
void printPostDominators () const
 
void printImmediatePostDominators () const
 

Private Attributes

std::vector< std::unique_ptr
< BasicBlock > > 
basicBlocks
 
std::vector< GPUStaticInst * > instructions
 

Detailed Description

Definition at line 94 of file kernel_cfg.hh.

Constructor & Destructor Documentation

ControlFlowInfo::ControlFlowInfo ( const std::vector< GPUStaticInst * > &  instructions)
private

Definition at line 58 of file kernel_cfg.cc.

References connectBasicBlocks(), and createBasicBlocks().

Member Function Documentation

void ControlFlowInfo::assignImmediatePostDominators ( const std::vector< GPUStaticInst * > &  instructions)
static

Compute immediate post-dominator instruction for kernel instructions.

Definition at line 50 of file kernel_cfg.cc.

References cfg, and findImmediatePostDominators().

Referenced by HsailCode::init().

BasicBlock * ControlFlowInfo::basicBlock ( int  inst_addr) const
private
void ControlFlowInfo::connectBasicBlocks ( )
private
void ControlFlowInfo::createBasicBlocks ( )
private

Definition at line 99 of file kernel_cfg.cc.

References basicBlocks, and instructions.

Referenced by ControlFlowInfo().

void ControlFlowInfo::findImmediatePostDominators ( )
private
void ControlFlowInfo::findPostDominators ( )
private

Definition at line 170 of file kernel_cfg.cc.

References basicBlocks, ArmISA::i, intersect(), and ArmISA::s.

Referenced by findImmediatePostDominators().

GPUStaticInst * ControlFlowInfo::lastInstruction ( const BasicBlock block) const
private
BasicBlock * ControlFlowInfo::postDominator ( const BasicBlock block) const
private

Definition at line 90 of file kernel_cfg.cc.

References basicBlock(), BasicBlock::isExit(), and lastInstruction().

Referenced by printImmediatePostDominators().

void ControlFlowInfo::printBasicBlockDot ( ) const
private

Definition at line 284 of file kernel_cfg.cc.

References basicBlocks.

void ControlFlowInfo::printBasicBlocks ( ) const
private

Definition at line 270 of file kernel_cfg.cc.

References basicBlock(), BasicBlock::id, and instructions.

void ControlFlowInfo::printImmediatePostDominators ( ) const
private

Definition at line 258 of file kernel_cfg.cc.

References basicBlocks, and postDominator().

void ControlFlowInfo::printPostDominators ( ) const
private

Definition at line 246 of file kernel_cfg.cc.

References basicBlocks.

Member Data Documentation

std::vector<std::unique_ptr<BasicBlock> > ControlFlowInfo::basicBlocks
private
std::vector<GPUStaticInst*> ControlFlowInfo::instructions
private

Definition at line 130 of file kernel_cfg.hh.

Referenced by createBasicBlocks(), lastInstruction(), and printBasicBlocks().


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:06 for gem5 by doxygen 1.8.6