GPUOcelot
Public Types | Public Member Functions | Public Attributes

tools::PTXOptimizer Class Reference

Able to run various optimization passes over PTX modules. More...

#include <PTXOptimizer.h>

List of all members.

Public Types

enum  RegisterAllocationType { LinearScan, InvalidRegisterAllocationType }
 

The type of register allocator to use.

More...
enum  PassType {
  InvalidPassType = 0x0, RemoveBarriers = 0x1, ReverseIfConversion = 0x2, SubkernelFormation = 0x4,
  StructuralTransform = 0x8, MIMDThreadScheduling = 0x10, DeadCodeElimination = 0x20, SplitBasicBlocks = 0x40,
  SyncElimination = 0x80
}
 

The possible PTX to PTX passes.

More...

Public Member Functions

 PTXOptimizer ()
 The constructor sets the defaults.
void optimize ()
 Performs the optimizations.

Public Attributes

std::string input
 The input file being optimized.
std::string output
 The output file being generated.
RegisterAllocationType registerAllocationType
 The type of register allocation to perform.
int passes
 The set of passes to run.
unsigned int registerCount
 The number of registers to allocate.
unsigned int subkernelSize
 The target sub-kernel size.
unsigned int basicBlockSize
 The target basic block size.
bool cfg
 Print out the CFG of optimized kernels.

Detailed Description

Able to run various optimization passes over PTX modules.


Member Enumeration Documentation

The possible PTX to PTX passes.

Enumerator:
InvalidPassType 
RemoveBarriers 
ReverseIfConversion 
SubkernelFormation 
StructuralTransform 
MIMDThreadScheduling 
DeadCodeElimination 
SplitBasicBlocks 
SyncElimination 

The type of register allocator to use.

Enumerator:
LinearScan 
InvalidRegisterAllocationType 

Constructor & Destructor Documentation

tools::PTXOptimizer::PTXOptimizer ( )

The constructor sets the defaults.


Member Function Documentation

void tools::PTXOptimizer::optimize ( )

Performs the optimizations.


Member Data Documentation

The target basic block size.

Print out the CFG of optimized kernels.

The input file being optimized.

The output file being generated.

The set of passes to run.

The type of register allocation to perform.

The number of registers to allocate.

The target sub-kernel size.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines