ILGPU  0.9.0
ILGPU.IR Namespace Reference

Namespaces

namespace  Analyses
 
namespace  Construction
 
namespace  Intrinsics
 
namespace  Rewriting
 
namespace  Transformations
 
namespace  Types
 
namespace  Values
 

Classes

class  AddressSpaceAttribute
 Represents an address-space annotation. More...
 
class  AddressSpaces
 Extensions to encode ILGPU address space information in the .Net type system environment.
 
class  BasicBlock
 Represents a single basic block. More...
 
struct  BasicBlockCollection
 A collection of basic blocks following a particular order. More...
 
struct  BasicBlockMap
 A mapping of basic block to values. More...
 
struct  BasicBlockSet
 Represents a set of basic blocks. More...
 
struct  BasicBlockSetList
 Represents a set list of basic blocks. More...
 
class  Dumpable
 Helper methods for IDumpable instances.
 
class  FileLocation
 A location that is based on file information. More...
 
interface  IAddressSpace
 Represents the base interface for all address spaces. More...
 
interface  IBasicBlockCollection
 An abstract block collection with a particular control-flow direction. More...
 
interface  IBasicBlockMapValueProvider
 A value provider for each block in a collection. More...
 
interface  IDumpable
 A dumpable IR object for debugging purposes. More...
 
interface  ILocation
 Represents an abstract location. More...
 
interface  IMethodCollection
 Represents an abstract function view. More...
 
interface  IMethodCollectionPredicate
 Represents a predicate on a function. More...
 
interface  IMethodMappingObject
 Represents an object that can be managed in the scope of a MethodMapping<T> More...
 
interface  INode
 The base interface of all nodes. More...
 
class  IRContext
 Represents an IR context. More...
 
interface  IValue
 The base interface of all values. More...
 
interface  IValueBuilder
 An abstract value builder. More...
 
class  Location
 An abstract source location. More...
 
class  Locations
 Extension methods for ILocation implementations.
 
class  Method
 Represents a method node within the IR. More...
 
struct  MethodCollection
 Represents a thread-safe function view. More...
 
class  MethodCollections
 Represents useful extensions for function views.
 
struct  MethodDeclaration
 Represents a method declaration of a Method. More...
 
struct  MethodHandle
 Represents a method handle to an Method that is valid across transformations. More...
 
class  MethodMapping
 Maps function handles and managed .Net methods to Method objects. More...
 
class  Node
 Represents a basic intermediate-representation node. It is the base class for all nodes in the scope of this IR. More...
 
struct  NodeId
 Represents a node id. More...
 
struct  UnsafeMethodCollection
 Represents an unsafe function view. More...
 
class  Value
 Represents a basic intermediate-representation value. It is the base class for all values in the scope of this IR. More...
 
class  ValueBuilder
 Extensions for IValueBuilder instances.
 
class  ValueExtensions
 Contains extension methods for values.
 
struct  ValueInitializer
 A general value initializer. More...
 
class  ValueKindAttribute
 Marks value classes with specific value kinds.
 
class  ValueKinds
 Utility methods for ValueKind enumeration values.
 
class  ValueParent
 A parent value container that holds and manages values. More...
 
class  VerificationResult
 An IR verification result.
 
class  Verifier
 A verifier to verify the structure of an IR method.
 

Enumerations

enum  MemoryAddressSpace : int { MemoryAddressSpace.Generic = 0, MemoryAddressSpace.Global = 1, MemoryAddressSpace.Shared = 2, MemoryAddressSpace.Local = 3 }
 Represents an address space. More...
 
enum  MethodFlags : int { MethodFlags.None = 0, MethodFlags.Inline = 1 << 0, MethodFlags.External = 1 << 1, MethodFlags.Intrinsic = 1 << 2 }
 Represents custom method flags. More...
 
enum  MethodTransformationFlags : int { MethodTransformationFlags.None = 0, MethodTransformationFlags.Dirty = 1 << 0, MethodTransformationFlags.Transformed = 1 << 1 }
 Represents transformation flags. More...
 
enum  ValueFlags : int {
  ValueFlags.None, ValueFlags.NotReplacable = 1 << 0, ValueFlags.NoUses = 1 << 1, ValueFlags.StaticType = 1 << 2,
  ValueFlags.IsSealed = 1 << 3
}
 Flags that can be associated with every value. More...
 
enum  ValueKind : int {
  ValueKind.UnaryArithmetic, ValueKind.BinaryArithmetic, ValueKind.TernaryArithmetic, ValueKind.Compare,
  ValueKind.Convert, ValueKind.IfPredicate, ValueKind.SwitchPredicate, ValueKind.PointerCast,
  ValueKind.AddressSpaceCast, ValueKind.ViewCast, ValueKind.IntAsPointerCast, ValueKind.FloatAsIntCast,
  ValueKind.IntAsFloatCast, ValueKind.Null, ValueKind.Primitive, ValueKind.String,
  ValueKind.AcceleratorType, ValueKind.GridIndex, ValueKind.GroupIndex, ValueKind.GridDimension,
  ValueKind.GroupDimension, ValueKind.WarpSize, ValueKind.LaneIdx, ValueKind.Alloca,
  ValueKind.MemoryBarrier, ValueKind.Load, ValueKind.Store, ValueKind.Phi,
  ValueKind.Parameter, ValueKind.MethodCall, ValueKind.Structure, ValueKind.GetField,
  ValueKind.SetField, ValueKind.Array, ValueKind.GetArrayExtent, ValueKind.GetArrayElement,
  ValueKind.SetArrayElement, ValueKind.NewView, ValueKind.GetViewLength, ValueKind.SubView,
  ValueKind.LoadElementAddress, ValueKind.LoadFieldAddress, ValueKind.Return, ValueKind.UnconditionalBranch,
  ValueKind.IfBranch, ValueKind.SwitchBranch, ValueKind.GenericAtomic, ValueKind.AtomicCAS,
  ValueKind.PredicateBarrier, ValueKind.Barrier, ValueKind.Broadcast, ValueKind.WarpShuffle,
  ValueKind.SubWarpShuffle, ValueKind.Debug, ValueKind.Undefined, ValueKind.BuilderTerminator,
  ValueKind.Handle
}
 Represents the kind of a single IR value. More...
 

Enumeration Type Documentation

enum ILGPU.IR.MemoryAddressSpace : int
strong

Represents an address space.

Enumerator
Generic 

The generic address space (any space).

Global 

Represents the global address space.

Shared 

Represents the shared address space.

Local 

Represents the local address space.

enum ILGPU.IR.MethodFlags : int
strong

Represents custom method flags.

Enumerator
None 

No flags (default).

Inline 

This method should be inlined.

External 

An external method declaration (without an implementation).

Intrinsic 

An intrinsic method that requires a backend-specific implementation.

Represents transformation flags.

Enumerator
None 

No flags (default).

Dirty 

This method has been modified since the last GC.

Transformed 

This method has been transformed and does not require further transformation passes.

enum ILGPU.IR.ValueFlags : int
strong

Flags that can be associated with every value.

Enumerator
None 

The default flags.

NotReplacable 

The value cannot be replaced.

NoUses 

The value cannot have uses.

StaticType 

Static type

IsSealed 

The value has been sealed.

enum ILGPU.IR.ValueKind : int
strong

Represents the kind of a single IR value.

Enumerator
UnaryArithmetic 

An Values.UnaryArithmeticValue value.

BinaryArithmetic 

A Values.BinaryArithmeticValue value.

TernaryArithmetic 

A Values.TernaryArithmeticValue value.

Compare 

A Values.CompareValue value.

Convert 

A Values.ConvertValue value.

IfPredicate 

A Values.IfPredicate value.

SwitchPredicate 

A Values.SwitchPredicate value.

PointerCast 

A Values.PointerCast value.

AddressSpaceCast 

A Values.AddressSpaceCast value.

ViewCast 

A Values.ViewCast value.

IntAsPointerCast 

A Values.IntAsPointerCast value.

FloatAsIntCast 

A Values.FloatAsIntCast value.

IntAsFloatCast 

A Values.IntAsFloatCast value.

Null 

A Values.NullValue value.

Primitive 

A Values.PrimitiveValue value.

String 

A Values.StringValue value.

AcceleratorType 

A Values.AcceleratorTypeValue value.

GridIndex 

A Values.GridIndexValue value.

GroupIndex 

A Values.GroupIndexValue value.

GridDimension 

A Values.GridDimensionValue value.

GroupDimension 

A Values.GroupDimensionValue value.

WarpSize 

A Values.WarpSizeValue value.

LaneIdx 

A Values.LaneIdxValue value.

Alloca 

An Values.Alloca value.

MemoryBarrier 

A Values.MemoryBarrier value.

Load 

A Values.Load value.

Store 

A Values.Store value.

Phi 

A Values.PhiValue value.

Parameter 

A Values.Parameter value.

MethodCall 

A Values.MethodCall value.

Structure 

A Values.StructureValue value.

GetField 

A Values.GetField value.

SetField 

A Values.SetField value.

Array 

A Values.ArrayValue value.

GetArrayExtent 

A Values.GetArrayExtent value.

GetArrayElement 

A Values.GetArrayElement value.

SetArrayElement 

A Values.SetArrayElement value.

NewView 

A Values.NewView value.

GetViewLength 

A Values.GetViewLength value.

SubView 

A Values.SubViewValue value.

LoadElementAddress 

A Values.LoadElementAddress value.

LoadFieldAddress 

A Values.LoadFieldAddress value.

Return 

A Values.ReturnTerminator terminator value.

UnconditionalBranch 

An Values.UnconditionalBranch terminator value.

IfBranch 

A Values.IfBranch terminator value.

SwitchBranch 

A Values.SwitchBranch terminator value.

GenericAtomic 

A Values.GenericAtomic value.

AtomicCAS 

A Values.AtomicCAS value.

PredicateBarrier 

A Values.PredicateBarrier value.

Barrier 

A Values.Barrier value.

Broadcast 

A Values.Broadcast value.

WarpShuffle 

A Values.WarpShuffle value.

SubWarpShuffle 

A Values.SubWarpShuffle value.

Debug 

A Values.DebugOperation value.

Undefined 

An Values.UndefinedValue value.

BuilderTerminator 

A Values.BuilderTerminator terminator value.

Handle 

A Values.HandleValue managed handle value.