ILGPU  0.9.0
ILGPU.IR.Transformations Namespace Reference

Classes

class  AcceleratorSpecializer
 Represents a device specializer that instantiates device-specific constants and updates device-specific functionality. More...
 
class  DeadCodeElimination
 Represents a DCE transformation. More...
 
class  IfConversion
 Converts nested if/switch branches into value conditionals. More...
 
class  InferAddressSpaces
 Infers address spaces by removing unnecessary address-space casts. More...
 
class  Inliner
 Represents a function inliner. More...
 
class  IntrinsicResolver
 Resolved required intrinsic IR implementations. More...
 
class  IntrinsicSpecializer
 Represents an intrinsic implementation specializer. More...
 
interface  ITransformerHandler
 Represents a transformer callback. More...
 
class  LowerArrays
 Lowers array values using memory operations or structure values. More...
 
class  LowerStructures
 Converts structure values into separate values. More...
 
class  LowerThreadIntrinsics
 Lowers internal high-level thread intrinsics. More...
 
class  LowerTypes
 Converts structure values into distinct values. More...
 
class  LowerViews
 Lowers views (values and types) into platform specific instances. More...
 
class  Optimizer
 Realizes utility helpers to perform and initialize transformations based on an OptimizationLevel.
 
class  OrderedTransformation
 Represents a generic transformation that will be applied in the post order of the induced call graph. More...
 
class  SequentialUnorderedTransformation
 Represents a generic transformation that can be applied in an unordered manner. More...
 
class  SimplifyControlFlow
 Merges multiple sequential branches (a call/branch chain) into a single block. More...
 
class  SSAConstruction
 Performs ah SSA construction transformation. More...
 
class  Transformation
 Represents a generic transformation. More...
 
struct  Transformer
 Applies transformations to contexts. More...
 
struct  TransformerConfiguration
 Represents a transformer configuration. More...
 
class  UnorderedTransformation
 Represents a generic transformation that can be applied in an unordered manner. More...
 
class  UnreachableCodeElimination
 Represents an UCE transformation. More...
 

Enumerations

enum  IfConversionFlags : int { IfConversionFlags.Default = 0, IfConversionFlags.Switches = 1 << 0 }
 Specific conversion flags for the IfConversion transformation. More...
 
enum  IntrinsicSpecializerFlags : int { IntrinsicSpecializerFlags.None, IntrinsicSpecializerFlags.EnableAssertions = 1 << 0 }
 Flags for the IntrinsicSpecializer<TDelegate> transformation. More...
 
enum  LowerStructureFlags : int { LowerStructureFlags.None, LowerStructureFlags.LowerLoadStores = 1 << 0 }
 Flags for the LowerStructures transformation. More...
 
enum  OptimizationLevel {
  OptimizationLevel.Debug = O0, OptimizationLevel.Release = O1, OptimizationLevel.O0 = 0, OptimizationLevel.O1 = 1,
  OptimizationLevel.O2 = 2
}
 Represent an optimization level. More...
 

Enumeration Type Documentation

Specific conversion flags for the IfConversion transformation.

Enumerator
Default 

Converts if branches.

Switches 

Converts switch branches.

Flags for the IntrinsicSpecializer<TDelegate> transformation.

Enumerator
None 

Default lowering flags.

EnableAssertions 

Enables assertions.

Flags for the LowerStructures transformation.

Enumerator
None 

Default lowering flags.

LowerLoadStores 

Lowers Load and Store instructions.

Represent an optimization level.

Enumerator
Debug 

Defaults to O0.

Release 

Defaults to O1.

O0 

Lightweight (required) transformations only.

O1 

Default release mode transformations.

O2 

Expensive transformations.