ILGPU  0.9.0
ILGPU.IR.Values.Alloca Class Reference

Represents an allocation operation on the stack. More...

Inheritance diagram for ILGPU.IR.Values.Alloca:
ILGPU.IR.Values.MemoryValue ILGPU.IR.Value ILGPU.IR.Node ILGPU.IR.IValue ILGPU.IR.INode ILGPU.IR.INode ILGPU.IR.ILocation ILGPU.IR.IDumpable ILGPU.IR.ILocation ILGPU.IR.IDumpable

Public Member Functions

bool IsArrayAllocation (out PrimitiveValue primitive)
 Returns true if this allocation is an array allocation. More...
 
override void Accept< T > (T visitor)
 
- Public Member Functions inherited from ILGPU.IR.Value
Use GetFirstUse ()
 Resolves the first use. More...
 
Value GetFirstUseNode ()
 Resolves the first use as value. More...
 
void Replace (Value other)
 Replaces this value with the given value. More...
 
Value Resolve ()
 Resolves the actual value with respect to replacement information. More...
 
ResolveAs< T > ()
 Resolves the actual value with respect to replacement information. More...
 
bool Equals (Value other)
 Returns true if the given value is the same value. More...
 
ReadOnlySpan< ValueReference >.Enumerator GetEnumerator ()
 Returns an enumerator to enumerate all child values. More...
 
sealed override string ToString ()
 Returns the string representation of this node. More...
 
override bool Equals (object obj)
 Returns true if the given object is equal to the current value. More...
 
override int GetHashCode ()
 Returns the hash code of this value. More...
 
- Public Member Functions inherited from ILGPU.IR.Node
virtual string FormatErrorMessage (string message)
 Formats an error message to include specific exception information. More...
 
virtual void Dump (TextWriter textWriter)
 Dumps this method to the given text writer. More...
 
string ToReferenceString ()
 Returns the string representation of this node as reference. More...
 
override string ToString ()
 Returns the string representation of this node. More...
 

Public Attributes

override ValueKind ValueKind => ValueKind.Alloca
 
ValueReference ArrayLength => this[0]
 Returns the array length. More...
 
bool IsSimpleAllocation
 Returns true if this allocation is a simple allocation. More...
 
- Public Attributes inherited from ILGPU.IR.Value
const ValueFlags DefaultFlags = ValueFlags.None
 The default value flags. More...
 
Method Method
 Returns the parent method. More...
 
BasicValueType BasicValueType
 Returns the associated basic value type. More...
 
bool CanBeReplaced
 Returns true if the current value can be replaced. More...
 
bool CanHaveUses
 Returns true if the current value can have uses. More...
 
bool HasStaticType
 Returns true if the current value has a static type. More...
 
bool IsSealed
 Returns true if the current value has been sealed. More...
 
bool IsReplaced => CanBeReplaced & Replacement != this
 Returns true if the current value has been replaced. More...
 
ReadOnlySpan< ValueReferenceNodes => values
 Returns all child values. More...
 
int Count => values.Count
 Returns the number of child values. More...
 
int AllNumUses => uses.Count
 Returns the total number of all associated uses. More...
 
UseCollection Uses => new UseCollection(this, uses)
 Returns all current uses (to non-replaced values). More...
 
ValueReference this[int index] => Nodes[index]
 Accesses the child value with the given index. More...
 

Protected Member Functions

override TypeNode ComputeType (in ValueInitializer initializer)
 
override string ToPrefixString ()
 
override string ToArgString ()
 
- Protected Member Functions inherited from ILGPU.IR.Value
 Value (in ValueInitializer initializer)
 Constructs a new value that is marked as replaceable. More...
 
 Value (in ValueInitializer initializer, TypeNode staticType)
 Constructs a new value that is marked as replaceable. More...
 
 Value (in ValueInitializer initializer, ValueFlags valueFlags)
 Constructs a new value that is marked as replaceable. More...
 
 Value (in ValueInitializer initializer, ValueFlags valueFlags, TypeNode staticType)
 Constructs a new value that is marked as replaceable. More...
 
void InvalidateType ()
 Invalidates the current type and enforces a re-computation of the current type. More...
 
void VerifyNotSealed ()
 Verifies that the this value is not sealed. More...
 
void Seal ()
 Seals this value. More...
 
void Seal (ValueReference value1)
 Seals this value. More...
 
void Seal (ValueReference value1, ValueReference value2)
 Seals this value. More...
 
void Seal (ValueReference value1, ValueReference value2, ValueReference value3)
 Seals this value. More...
 
void Seal (ref ValueList valueList)
 Seals this value. More...
 
- Protected Member Functions inherited from ILGPU.IR.Node
 Node (Location location)
 Constructs a new node that is marked as replaceable. More...
 
void InferLocation< T > (ReadOnlySpan< T > elements)
 Infers the location (if required) of the current node. More...
 

Properties

TypeNode AllocaType [get]
 Returns the allocation type. More...
 
MemoryAddressSpace AddressSpace [get]
 Returns the address space of this allocation. More...
 
- Properties inherited from ILGPU.IR.Value
abstract ValueKind ValueKind [get]
 Returns the current value kind. More...
 
BasicBlock BasicBlock [get, set]
 Returns the parent basic block. More...
 
TypeNode Type [get]
 Returns the associated type. More...
 
ValueFlags ValueFlags [get]
 Returns the associated value flags. More...
 
Value Replacement [get]
 Returns the replacement of this value (if any). More...
 
- Properties inherited from ILGPU.IR.Node
Location Location [get]
 Returns the associated location. More...
 
NodeId Id [get]
 Returns the unique node id. More...
 
- Properties inherited from ILGPU.IR.INode
NodeId Id [get]
 Returns the unique node id. More...
 
Location Location [get]
 Returns the associated location. More...
 
- Properties inherited from ILGPU.IR.IValue
ValueKind ValueKind [get]
 Returns the current value kind. More...
 
TypeNode Type [get]
 Returns the associated type information. More...
 
BasicBlock BasicBlock [get]
 Returns the parent basic block. More...
 
BasicValueType BasicValueType [get]
 Returns the associated basic value type. More...
 
ReadOnlySpan< ValueReferenceNodes [get]
 Returns all associated nodes. More...
 
UseCollection Uses [get]
 Returns all associated uses. More...
 

Detailed Description

Represents an allocation operation on the stack.

Member Function Documentation

override void ILGPU.IR.Values.Alloca.Accept< T > ( visitor)
virtual

Implements ILGPU.IR.Value.

override TypeNode ILGPU.IR.Values.Alloca.ComputeType ( in ValueInitializer  initializer)
protectedvirtual

Reimplemented from ILGPU.IR.Value.

bool ILGPU.IR.Values.Alloca.IsArrayAllocation ( out PrimitiveValue  primitive)

Returns true if this allocation is an array allocation.

override string ILGPU.IR.Values.Alloca.ToArgString ( )
protectedvirtual

Reimplemented from ILGPU.IR.Value.

override string ILGPU.IR.Values.Alloca.ToPrefixString ( )
protectedvirtual

Implements ILGPU.IR.Node.

Member Data Documentation

ValueReference ILGPU.IR.Values.Alloca.ArrayLength => this[0]

Returns the array length.

bool ILGPU.IR.Values.Alloca.IsSimpleAllocation
Initial value:
=>
ArrayLength.ResolveAs<UndefinedValue>() != null

Returns true if this allocation is a simple allocation.

override ValueKind ILGPU.IR.Values.Alloca.ValueKind => ValueKind.Alloca

Property Documentation

MemoryAddressSpace ILGPU.IR.Values.Alloca.AddressSpace
get

Returns the address space of this allocation.

TypeNode ILGPU.IR.Values.Alloca.AllocaType
get

Returns the allocation type.


The documentation for this class was generated from the following file: