ILGPU  0.9.0
ILGPU.IR.Values.IfBranch Class Reference

Represents an if branch terminator. More...

Inheritance diagram for ILGPU.IR.Values.IfBranch:
ILGPU.IR.Values.ConditionalBranch ILGPU.IR.Values.Branch ILGPU.IR.Values.TerminatorValue 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

override void Accept< T > (T visitor)
 
- Public Member Functions inherited from ILGPU.IR.Values.ConditionalBranch
Branch Fold (IRBuilder builder)
 Folds this branch into another branch that might be unconditional. More...
 
- Public Member Functions inherited from ILGPU.IR.Values.TerminatorValue
TerminatorValue RemapTargets< TTargetRemapper > (Method.Builder methodBuilder, TTargetRemapper remapper)
 Remaps the current block targets. More...
 
TerminatorValue RemapTargets< TTargetRemapper > (BasicBlock.Builder blockBuilder, TTargetRemapper remapper)
 Remaps the current block targets. More...
 
- 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.IfBranch
 
BasicBlock TrueTarget => Targets[0]
 Returns the true jump target. More...
 
BasicBlock FalseTarget => Targets[1]
 Returns the false jump target. More...
 
- Public Attributes inherited from ILGPU.IR.Values.ConditionalBranch
ValueReference Condition => this[0]
 Returns the associated branch condition. More...
 
bool CanFold => Condition.IsPrimitive()
 Returns true if this conditional branch can be folded. More...
 
- Public Attributes inherited from ILGPU.IR.Values.TerminatorValue
ReadOnlySpan< BasicBlockTargets => branchTargets
 Returns the associated targets. More...
 
int NumTargets => branchTargets.Count
 Returns the number of attached targets. 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 Branch FoldBranch (IRBuilder builder, PrimitiveValue condition)
 
override TerminatorValue RemapTargets (BasicBlock.Builder builder, ref BlockList targets)
 Creates a new if branch using the given targets. More...
 
override string ToPrefixString ()
 
override string ToArgString ()
 
- Protected Member Functions inherited from ILGPU.IR.Values.ConditionalBranch
 ConditionalBranch (in ValueInitializer initializer)
 Constructs a new conditional branch terminator. More...
 
- Protected Member Functions inherited from ILGPU.IR.Values.Branch
override TypeNode ComputeType (in ValueInitializer initializer)
 
- Protected Member Functions inherited from ILGPU.IR.Values.TerminatorValue
 TerminatorValue (in ValueInitializer initializer)
 Constructs a new terminator value that is marked. More...
 
void SealTargets (ref BlockList targets)
 Seals all internal branch targets (if any). More...
 
- 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...
 

Additional Inherited Members

- 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 if branch terminator.

Member Function Documentation

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

Implements ILGPU.IR.Value.

override Branch ILGPU.IR.Values.IfBranch.FoldBranch ( IRBuilder  builder,
PrimitiveValue  condition 
)
protectedvirtual
override TerminatorValue ILGPU.IR.Values.IfBranch.RemapTargets ( BasicBlock.Builder  builder,
ref BlockList  targets 
)
protectedvirtual

Creates a new if branch using the given targets.

Implements ILGPU.IR.Values.TerminatorValue.

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

Reimplemented from ILGPU.IR.Value.

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

Implements ILGPU.IR.Node.

Member Data Documentation

BasicBlock ILGPU.IR.Values.IfBranch.FalseTarget => Targets[1]

Returns the false jump target.

BasicBlock ILGPU.IR.Values.IfBranch.TrueTarget => Targets[0]

Returns the true jump target.

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


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