ILGPU  0.9.0
ILGPU.IR.Values Namespace Reference

Classes

class  AcceleratorTypeValue
 Represents the Accelerator.AcceleratorType property. More...
 
class  AddressSpaceCast
 Cast a pointer from one address space to another. More...
 
class  Alloca
 Represents an allocation operation on the stack. More...
 
class  ArithmeticValue
 Represents an abstract arithmetic value. More...
 
class  ArrayOperationValue
 Represents an operation on structure values. More...
 
class  ArrayValue
 Represents an array value. More...
 
class  AtomicCAS
 Represents an atomic compare-and-swap operation. More...
 
class  AtomicValue
 Represents a general atomic value. More...
 
class  Barrier
 Represents a synchronization barrier. More...
 
class  BarrierOperation
 Represents a generic barrier operation. More...
 
class  BaseAddressSpaceCast
 Represents an abstract cast operation that works on address spaces. More...
 
class  BinaryArithmeticValue
 Represents a binary arithmetic operation. More...
 
class  BitCast
 Casts from one value type to another while reinterpreting the value as another type. More...
 
class  Branch
 Represents a branch-based terminator. More...
 
class  Broadcast
 Represents a broadcast operation. More...
 
class  BuilderTerminator
 Represents a temporary builder terminator. More...
 
class  CastValue
 Represents an abstract cast operation. More...
 
class  ClassOperationValue
 Represents an operation on object values. More...
 
class  ClassValue
 An abstract class value. More...
 
class  CompareValue
 Represents a comparison. More...
 
class  Conditional
 Represents a conditional predicate. More...
 
class  ConditionalBranch
 Represents a conditional branch terminator. More...
 
class  ConstantNode
 Represents a constant value that will be instantiated. More...
 
class  ConvertFlagsExtensions
 Internal conversion flags extensions.
 
class  ConvertValue
 Converts a node into a target type. More...
 
class  DebugOperation
 Represents a generic debug operation. More...
 
class  DeviceConstantDimensionValue
 Represents a device constant inside a kernel. More...
 
class  DeviceConstantValue
 Represents a device constant inside a kernel. More...
 
struct  FieldAccess
 An index into to a scalar structure field. More...
 
struct  FieldAccessChain
 Represents a chain of field indices that is used to point to a particular structure field. More...
 
struct  FieldRef
 A reference to a scalar structure field. More...
 
struct  FieldSpan
 An index into to a scalar structure field that can span multiple fields. More...
 
class  FloatAsIntCast
 Casts from a float to an int while preserving bits. More...
 
class  GenericAtomic
 Represents a generic atomic operation. More...
 
class  GetArrayElement
 Represents an operation to load a single element from an array. More...
 
class  GetArrayExtent
 Represents an operation to extract the extent from an array value. More...
 
class  GetField
 Represents an operation to load a single field from an object. More...
 
class  GetViewLength
 Represents the ArrayView<T>.Length property inside the IR. More...
 
class  GridDimensionValue
 Represents the Grid.Dimension property. More...
 
class  GridIndexValue
 Represents the Grid.Index property. More...
 
class  GroupDimensionValue
 Represents the Group.Dimension property. More...
 
class  GroupIndexValue
 Represents the Group.Index property. More...
 
class  HandleValue
 Represents an internal .Net runtime handle value. More...
 
class  IfBranch
 Represents an if branch terminator. More...
 
class  IfPredicate
 Represents a single if predicate. More...
 
class  IntAsFloatCast
 Casts from an int to a float while preserving bits. More...
 
class  IntAsPointerCast
 Casts from an integer to a raw pointer value. More...
 
interface  IValueVisitor
 A generic interface to visit values in the IR. More...
 
class  LaneIdxValue
 Represents the Warp.LaneIdx property. More...
 
class  Load
 Represents a load operation with side effects. More...
 
class  LoadElementAddress
 Loads an element address of a view or a pointer. More...
 
class  LoadFieldAddress
 Loads a field address of an object pointer. More...
 
class  MemoryBarrier
 Represents a memory barrier that hinders reordering of memory operations with side effects. More...
 
class  MemoryValue
 Represents an abstract value with side effects. More...
 
class  MethodCall
 Represents a single function call of the form x = f(a0, ..., an-1) or f(a0, ..., an-1) More...
 
class  NewView
 Represents a new view. More...
 
class  NullValue
 Represents an immutable null value. More...
 
class  Parameter
 Represents a function parameter. More...
 
class  PhiValue
 Represents a single control-flow dependent phi node. More...
 
class  PointerCast
 Casts the type of a pointer to a different type. More...
 
class  PointerValue
 Represents an abstract pointer value. More...
 
class  PredicateBarrier
 Represents a predicated synchronization barrier. More...
 
class  PrimitiveValue
 Represents a primitive value. More...
 
class  ReturnTerminator
 Represents a simple return terminator. More...
 
class  SetArrayElement
 Represents an operation to store a single value into an array. More...
 
class  SetField
 Represents an operation to store a single field of an object. More...
 
class  ShuffleOperation
 Represents a shuffle operation. More...
 
class  Store
 Represents a store operation with side effects. More...
 
class  StringValue
 Represents an immutable string value. More...
 
class  StructureOperationValue
 Represents an operation on structure values. More...
 
class  StructureValue
 Represents an immutable structure value. More...
 
class  SubViewValue
 Represents a value to compute a sub-view value. More...
 
class  SubWarpShuffle
 Represents an sub-warp shuffle operation. More...
 
class  SwitchBranch
 Represents a single switch terminator. More...
 
class  SwitchPredicate
 Represents a single switch predicate. More...
 
class  TerminatorValue
 Represents a single terminator value. More...
 
class  TernaryArithmeticValue
 Represents a binary arithmetic operation. More...
 
class  ThreadValue
 Represents a value that is used for communicating values across all threads. More...
 
class  UnaryArithmeticValue
 Represents a unary arithmetic operation. More...
 
class  UnconditionalBranch
 Represents an unconditional branch terminator. More...
 
class  UndefinedValue
 Represents an undefined value. More...
 
struct  Use
 Represents the use of a single node. More...
 
struct  UseCollection
 Represents an enumerable of uses that point to non-replaced nodes. More...
 
class  UseDistribution
 An analysis class to resolve information about the global use-relation within a given context. More...
 
struct  ValueReference
 Represents a reference to a node that can be resolved automatically to the latest node information by following the replacement relation on nodes. More...
 
class  ViewCast
 Casts a view from one element type to another. More...
 
class  ViewPropertyValue
 Represents a generic property of an ArrayView<T>. More...
 
class  WarpShuffle
 Represents a shuffle operation. More...
 
class  WarpSizeValue
 Represents the Warp.WarpSize property. More...
 

Enumerations

enum  ArithmeticFlags { ArithmeticFlags.None = 0, ArithmeticFlags.Overflow = 1, ArithmeticFlags.Unsigned = 2, ArithmeticFlags.OverflowUnsigned = 3 }
 Represents flags of an arithmetic operation. More...
 
enum  AtomicFlags { AtomicFlags.None = 0, AtomicFlags.Unsigned = 1 }
 Represents flags of an atomic operation. More...
 
enum  AtomicKind {
  AtomicKind.Exchange, AtomicKind.Add, AtomicKind.And, AtomicKind.Or,
  AtomicKind.Xor, AtomicKind.Max, AtomicKind.Min
}
 Represents the kind of an atomic operation. More...
 
enum  CompareKind {
  CompareKind.Equal, CompareKind.NotEqual, CompareKind.LessThan, CompareKind.LessEqual,
  CompareKind.GreaterThan, CompareKind.GreaterEqual
}
 Represents the kind of a compare node. More...
 
enum  CompareFlags { CompareFlags.None, CompareFlags.UnsignedOrUnordered }
 Represents special flags of a comparison. More...
 
enum  ConvertFlags {
  ConvertFlags.None, ConvertFlags.Overflow = 1, ConvertFlags.SourceUnsigned = 2, ConvertFlags.OverflowSourceUnsigned = 3,
  ConvertFlags.TargetUnsigned = 4
}
 Flags of a convert operation. More...
 
enum  DebugKind { DebugKind.AssertFailed, DebugKind.Trace }
 Represents the kind of a debug operation. More...
 
enum  DeviceConstantDimension3D { DeviceConstantDimension3D.X, DeviceConstantDimension3D.Y, DeviceConstantDimension3D.Z }
 Represents a dimension of a 3D device constant. More...
 
enum  MemoryBarrierKind { MemoryBarrierKind.GroupLevel, MemoryBarrierKind.DeviceLevel, MemoryBarrierKind.SystemLevel }
 Represents the kind of a memory-barrier operation. More...
 
enum  PredicateBarrierKind { PredicateBarrierKind.PopCount, PredicateBarrierKind.And, PredicateBarrierKind.Or }
 Represents a predicate-barrier kind. More...
 
enum  BarrierKind { BarrierKind.WarpLevel, BarrierKind.GroupLevel }
 Represents a barrier kind. More...
 
enum  BroadcastKind { BroadcastKind.WarpLevel, BroadcastKind.GroupLevel }
 Represents the kind of a broadcast operation. More...
 
enum  ShuffleKind { ShuffleKind.Generic, ShuffleKind.Down, ShuffleKind.Up, ShuffleKind.Xor }
 Represents the kind of a shuffle operation. More...
 
enum  UnaryArithmeticKind {
  UnaryArithmeticKind.Neg, UnaryArithmeticKind.Not, UnaryArithmeticKind.Abs, UnaryArithmeticKind.RcpF,
  UnaryArithmeticKind.IsNaNF, UnaryArithmeticKind.IsInfF, UnaryArithmeticKind.SqrtF, UnaryArithmeticKind.RsqrtF,
  UnaryArithmeticKind.AsinF, UnaryArithmeticKind.SinF, UnaryArithmeticKind.SinhF, UnaryArithmeticKind.AcosF,
  UnaryArithmeticKind.CosF, UnaryArithmeticKind.CoshF, UnaryArithmeticKind.TanF, UnaryArithmeticKind.TanhF,
  UnaryArithmeticKind.AtanF, UnaryArithmeticKind.ExpF, UnaryArithmeticKind.Exp2F, UnaryArithmeticKind.FloorF,
  UnaryArithmeticKind.CeilingF, UnaryArithmeticKind.LogF, UnaryArithmeticKind.Log2F, UnaryArithmeticKind.Log10F
}
 Represents the kind of an unary operation. More...
 
enum  BinaryArithmeticKind {
  BinaryArithmeticKind.Add, BinaryArithmeticKind.Sub, BinaryArithmeticKind.Mul, BinaryArithmeticKind.Div,
  BinaryArithmeticKind.Rem, BinaryArithmeticKind.And, BinaryArithmeticKind.Or, BinaryArithmeticKind.Xor,
  BinaryArithmeticKind.Shl, BinaryArithmeticKind.Shr, BinaryArithmeticKind.Min, BinaryArithmeticKind.Max,
  BinaryArithmeticKind.Atan2F, BinaryArithmeticKind.PowF, BinaryArithmeticKind.BinaryLogF
}
 Represents the kind of a binary operation. More...
 
enum  TernaryArithmeticKind { TernaryArithmeticKind.MultiplyAdd }
 Represents the kind of a ternary operation. More...
 

Enumeration Type Documentation

Represents flags of an arithmetic operation.

Enumerator
None 

No special flags (default).

Overflow 

The operation has overflow semantics.

Unsigned 

The operation has unsigned semantics.

OverflowUnsigned 

The operation has overflow semantics and the overflow check is based on unsigned semantics.

Represents flags of an atomic operation.

Enumerator
None 

No special flags (default).

Unsigned 

The operation has unsigned semantics.

Represents the kind of an atomic operation.

Enumerator
Exchange 

An XCHG operation.

Add 

An add operation.

And 

An and operation.

Or 

An or operation.

Xor 

An xor operation.

Max 

A max operation.

Min 

A min operation.

Represents a barrier kind.

Enumerator
WarpLevel 

A barrier that operates on warp level.

GroupLevel 

A barrier that operates on group level.

Represents the kind of a binary operation.

Enumerator
Add 

The + operation.

Sub 

The - operation.

Mul 

The * operation.

Div 

The / operation.

Rem 

The % operation.

And 

The logical and operation.

Or 

The logical or operation.

Xor 

The logical xor operation.

Shl 

The shift left operation.

Shr 

The shift right operation.

Min 

The min operation.

Max 

The max operation.

Atan2F 

The atan2 operation.

PowF 

The pow operation.

BinaryLogF 

The binary log operation.

Represents the kind of a broadcast operation.

Enumerator
WarpLevel 

A broadcast operation that operates on warp level.

GroupLevel 

A broadcast operation that operates on group level.

Represents special flags of a comparison.

Enumerator
None 

No special flags.

UnsignedOrUnordered 

Specifies an unsigned (int) or an unordered (float) comparison.

Represents the kind of a compare node.

Enumerator
Equal 

An equal comparison.

NotEqual 

A not-equal comparison.

LessThan 

A less-than comparison.

LessEqual 

A less-equal comparison.

GreaterThan 

A greater-than comparison.

GreaterEqual 

A greater-equal comparison.

Flags of a convert operation.

Enumerator
None 

No flags (default).

Overflow 

The convert operation has overflow semantics.

SourceUnsigned 

The convert operation treats the input value as unsigned.

OverflowSourceUnsigned 

The convert operation has overflow semantics and the overflow check is based on unsigned semantics.

TargetUnsigned 

The convert operation results in an unsigned value.

Represents the kind of a debug operation.

Enumerator
AssertFailed 

A failed assertion.

Trace 

A trace operation.

Represents a dimension of a 3D device constant.

Enumerator

The X dimension.

The Y dimension.

The Z dimension.

Represents the kind of a memory-barrier operation.

Enumerator
GroupLevel 

The barrier works on the group level.

DeviceLevel 

The barrier works on the device level.

SystemLevel 

The barrier works on the system level.

Represents a predicate-barrier kind.

Enumerator
PopCount 

Returns the number of threads in the group for which the predicate evaluates to true.

And 

Returns the logical and result of the predicate of all threads in the group.

Or 

Returns the logical or result of the predicate of all threads in the group.

Represents the kind of a shuffle operation.

Enumerator
Generic 

A generic shuffle operation.

Down 

A down-shuffle operation.

Up 

An up-shuffle operation.

Xor 

A xor-shuffle operation.

Represents the kind of a ternary operation.

Enumerator
MultiplyAdd 

The FMA operation.

Represents the kind of an unary operation.

Enumerator
Neg 

The neg operation.

Not 

The logical not operation.

Abs 

The abs operation.

RcpF 

The reciprocal operation.

IsNaNF 

The is-not-a-number operation.

IsInfF 

The is-infinity operation.

SqrtF 

Computes sqrt(value).

RsqrtF 

Computes 1/sqrt(value).

AsinF 

Computes asin(x).

SinF 

Computes sin(x).

SinhF 

Computes sinh(x).

AcosF 

Computes acos(x).

CosF 

Computes cos(x).

CoshF 

Computes cosh(x).

TanF 

Computes tan(x).

TanhF 

Computes tanh(x).

AtanF 

Computes atan(x).

ExpF 

Computes exp(x).

Exp2F 

Computes 2^x.

FloorF 

Computes floor(x).

CeilingF 

Computes ceil(x).

LogF 

Computes log(x) to base e.

Log2F 

Computes log(x) to base 2.

Log10F 

Computes log(x) to base 10.