gem5
|
#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) | |
GPUStaticInst * | lastInstruction (const BasicBlock *block) const |
BasicBlock * | basicBlock (int inst_addr) const |
BasicBlock * | postDominator (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 |
Definition at line 94 of file kernel_cfg.hh.
|
private |
Definition at line 58 of file kernel_cfg.cc.
References connectBasicBlocks(), and createBasicBlocks().
|
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().
|
private |
Definition at line 66 of file kernel_cfg.cc.
References basicBlocks, BasicBlock::firstInstruction, and GPUStaticInst::instAddr().
Referenced by connectBasicBlocks(), findImmediatePostDominators(), postDominator(), and printBasicBlocks().
|
private |
Definition at line 131 of file kernel_cfg.cc.
References basicBlock(), basicBlocks, PowerISA::bb, GPUStaticInst::getTargetPc(), BasicBlock::id, GPUStaticInst::isBranch(), GPUStaticInst::isReturn(), GPUStaticInst::isUnconditionalJump(), lastInstruction(), and GPUStaticInst::nextInstAddr().
Referenced by ControlFlowInfo().
|
private |
Definition at line 99 of file kernel_cfg.cc.
References basicBlocks, and instructions.
Referenced by ControlFlowInfo().
|
private |
Definition at line 214 of file kernel_cfg.cc.
References basicBlock(), basicBlocks, findPostDominators(), BasicBlock::id, GPUStaticInst::instAddr(), GPUStaticInst::ipdInstNum(), BasicBlock::isExit(), lastInstruction(), BasicBlock::postDominatorIds, and setDifference().
Referenced by assignImmediatePostDominators().
|
private |
Definition at line 170 of file kernel_cfg.cc.
References basicBlocks, ArmISA::i, intersect(), and ArmISA::s.
Referenced by findImmediatePostDominators().
|
private |
Definition at line 79 of file kernel_cfg.cc.
References BasicBlock::firstInstruction, GPUStaticInst::instNum(), instructions, BasicBlock::isExit(), and BasicBlock::size.
Referenced by connectBasicBlocks(), findImmediatePostDominators(), and postDominator().
|
private |
Definition at line 90 of file kernel_cfg.cc.
References basicBlock(), BasicBlock::isExit(), and lastInstruction().
Referenced by printImmediatePostDominators().
|
private |
Definition at line 284 of file kernel_cfg.cc.
References basicBlocks.
|
private |
Definition at line 270 of file kernel_cfg.cc.
References basicBlock(), BasicBlock::id, and instructions.
|
private |
Definition at line 258 of file kernel_cfg.cc.
References basicBlocks, and postDominator().
|
private |
Definition at line 246 of file kernel_cfg.cc.
References basicBlocks.
|
private |
Definition at line 129 of file kernel_cfg.hh.
Referenced by basicBlock(), connectBasicBlocks(), createBasicBlocks(), findImmediatePostDominators(), findPostDominators(), printBasicBlockDot(), printImmediatePostDominators(), and printPostDominators().
|
private |
Definition at line 130 of file kernel_cfg.hh.
Referenced by createBasicBlocks(), lastInstruction(), and printBasicBlocks().