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