gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules 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::ControlFlowInfo ( const std::vector< GPUStaticInst *> &  instructions)
private

Definition at line 58 of file kernel_cfg.cc.

References connectBasicBlocks(), and createBasicBlocks().

Member Function Documentation

◆ assignImmediatePostDominators()

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 findImmediatePostDominators().

Referenced by HsailCode::init().

◆ basicBlock()

BasicBlock * ControlFlowInfo::basicBlock ( int  inst_addr) const
private

◆ connectBasicBlocks()

void ControlFlowInfo::connectBasicBlocks ( )
private

◆ createBasicBlocks()

void ControlFlowInfo::createBasicBlocks ( )
private

Definition at line 99 of file kernel_cfg.cc.

References basicBlocks, and instructions.

Referenced by ControlFlowInfo().

◆ findImmediatePostDominators()

void ControlFlowInfo::findImmediatePostDominators ( )
private

◆ findPostDominators()

void ControlFlowInfo::findPostDominators ( )
private

Definition at line 170 of file kernel_cfg.cc.

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

Referenced by findImmediatePostDominators().

◆ lastInstruction()

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

◆ postDominator()

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().

◆ printBasicBlockDot()

void ControlFlowInfo::printBasicBlockDot ( ) const
private

Definition at line 284 of file kernel_cfg.cc.

References basicBlocks.

◆ printBasicBlocks()

void ControlFlowInfo::printBasicBlocks ( ) const
private

Definition at line 270 of file kernel_cfg.cc.

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

◆ printImmediatePostDominators()

void ControlFlowInfo::printImmediatePostDominators ( ) const
private

Definition at line 258 of file kernel_cfg.cc.

References basicBlocks, and postDominator().

◆ printPostDominators()

void ControlFlowInfo::printPostDominators ( ) const
private

Definition at line 246 of file kernel_cfg.cc.

References basicBlocks.

Member Data Documentation

◆ basicBlocks

std::vector<std::unique_ptr<BasicBlock> > ControlFlowInfo::basicBlocks
private

◆ instructions

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 Mon Jun 8 2020 15:45:20 for gem5 by doxygen 1.8.13