GPUOcelot
Classes | Typedefs | Functions

transforms Namespace Reference

SplitBasicBlockPass.cpp. More...

Classes

class  KernelAndId
class  AssignFallThroughEdge
class  ConvertPredicationToSelectPass
 A class for a pass that converts all predicate instructions to conditional select. More...
class  DeadCodeEliminationPass
 A transform to perform dead code elimination on a PTX kernel. More...
class  DefaultLayoutPass
 Construct an instruction vector without reconverge points. More...
class  IPDOMReconvergencePass
 A pass to construct an instruction vector with reconverge points. More...
class  KernelDrawerPass
class  LinearScanRegisterAllocationPass
 Implements the linear scan register allocation algorithm. More...
class  MIMDThreadSchedulingPass
 A class for changing the scheduling order of threads assuming execution on a SIMT IPDOM machine. More...
class  Pass
 A class modeled after the LLVM notion of an optimization pass. Allows different transformations to be applied to PTX modules. More...
class  ImmutablePass
 A pass that generates information about a program without modifying it, used to generate data structures. More...
class  ModulePass
 A pass over an entire module. More...
class  KernelPass
 A pass over a single kernel in a module. More...
class  ImmutableKernelPass
 An immutable pass over a single kernel in a module. More...
class  BasicBlockPass
 A pass over a single basic block in a kernel. More...
class  PassManager
 A class to orchestrate the execution of many passes. More...
class  RemoveBarrierPass
 A class for a pass that removes all barriers from a PTX kernel. More...
class  SimplifyExternalCallsPass
 Removes parameters passed to external calls to eliminate explicit stack modifications in PTX. The register are passed directly to external calls. More...
class  SplitBasicBlockPass
 A class for splitting basic blocks larger than a specified size. More...
class  StructuralTransform
 StructuralTransform - This class holds all the methods and data structures. More...
class  SubkernelFormationPass
 Split all kernels in a module into sub-kernels. The sub-kernels should be called as functions from the main kernel. The assumption is that all threads will execute a sub-kernel, hit a barrier, and enter the next sub-kernel. More...
class  SyncEliminationPass
 This pass converts ordinary bra instructions into bra.uni, whenever the divergence analysis deems it safe to do so. More...
class  ThreadFrontierReconvergencePass
 A pass to construct an instruction vector with reconverge points at thread frontiers. More...

Typedefs

typedef
analysis::DataflowGraph::iterator 
iterator
typedef
analysis::DataflowGraph::Instruction 
Instruction
typedef
analysis::DataflowGraph::RegisterPointerVector 
RegisterPointerVector
typedef
analysis::DataflowGraph::RegisterVector 
RegisterVector
typedef std::unordered_set
< iterator
BlockSet
typedef
analysis::DataflowGraph::BlockPointerSet 
BlockPointerSet
typedef
analysis::DataflowGraph::PhiInstruction 
PhiInstruction
typedef
analysis::DataflowGraph::Register 
Register
typedef
analysis::DataflowGraph::Block::RegisterSet 
RegisterSet
typedef
analysis::DataflowGraph::InstructionVector 
InstructionVector
typedef
analysis::DataflowGraph::PhiInstructionVector 
PhiInstructionVector
typedef PassManager::AnalysisMap AnalysisMap
typedef std::unordered_set
< std::string > 
StringSet
typedef
analysis::StructuralAnalysis 
SA
typedef std::unordered_map
< std::string,
ir::ControlFlowGraph::iterator
BlockLabelMap
typedef std::unordered_map
< ir::BasicBlock::Id,
KernelAndId
IdToSubkernelMap
typedef std::list< Pass * > PassList

Functions

void sinkBarrier (ir::PTXKernel &kernel, BlockSet &barriers, ir::ControlFlowGraph::iterator block, ir::ControlFlowGraph::iterator dom, ir::ControlFlowGraph::iterator pdom, analysis::DataflowGraph *dfg)
void splitBlock (ir::ControlFlowGraph &cfg, ir::ControlFlowGraph::iterator block, unsigned int maxSize)

Detailed Description

SplitBasicBlockPass.cpp.

SplitBasicBlockPass.h.

Author:
Gregory Diamos <gregory.diamos@gatech.edu>
Date:
Friday August 12, 2011 The source file for the SplitBasicBlockPass class.
Author:
Gregory Diamos <gregory.diamos@gatech.edu>
Date:
Friday August 12, 2011 The header file for the SplitBasicBlockPass class.

Typedef Documentation

typedef std::unordered_map<std::string, ir::ControlFlowGraph::iterator> transforms::BlockLabelMap
typedef std::list<Pass*> transforms::PassList
typedef std::unordered_set<std::string> transforms::StringSet

Function Documentation

void transforms::sinkBarrier ( ir::PTXKernel kernel,
BlockSet &  barriers,
ir::ControlFlowGraph::iterator  block,
ir::ControlFlowGraph::iterator  dom,
ir::ControlFlowGraph::iterator  pdom,
analysis::DataflowGraph dfg 
)
void transforms::splitBlock ( ir::ControlFlowGraph cfg,
ir::ControlFlowGraph::iterator  block,
unsigned int  maxSize 
)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines