Class JumpFlow
Control flow that unconditionally jumps to a particular branch.
Inherited Members
Namespace: Flame.Compiler.Flow
Assembly: Flame.Compiler.dll
Syntax
public sealed class JumpFlow : BlockFlow
Constructors
| Edit this page View SourceJumpFlow(BasicBlockTag)
Creates control flow that unconditionally jumps to a particular block, passing no arguments.
Declaration
public JumpFlow(BasicBlockTag target)
Parameters
| Type | Name | Description |
|---|---|---|
| BasicBlockTag | target | The target block. |
JumpFlow(BasicBlockTag, IReadOnlyList<BranchArgument>)
Creates control flow that unconditionally jumps to a particular block, passing a list of arguments.
Declaration
public JumpFlow(BasicBlockTag target, IReadOnlyList<BranchArgument> arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| BasicBlockTag | target | The target block. |
| IReadOnlyList<BranchArgument> | arguments | A list of arguments to pass to the target block. |
JumpFlow(BasicBlockTag, IReadOnlyList<ValueTag>)
Creates control flow that unconditionally jumps to a particular block, passing a list of arguments.
Declaration
public JumpFlow(BasicBlockTag target, IReadOnlyList<ValueTag> arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| BasicBlockTag | target | The target block. |
| IReadOnlyList<ValueTag> | arguments | A list of arguments to pass to the target block. |
JumpFlow(Branch)
Creates control flow that unconditionally jumps to a particular branch.
Declaration
public JumpFlow(Branch branch)
Parameters
| Type | Name | Description |
|---|---|---|
| Branch | branch | The branch to jump to. |
Properties
| Edit this page View SourceBranch
Gets the branch that is unconditionally taken by this flow.
Declaration
public Branch Branch { get; }
Property Value
| Type | Description |
|---|---|
| Branch | The jump branch. |
Branches
Gets a list of branches this flow may take.
Declaration
public override IReadOnlyList<Branch> Branches { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<Branch> | A list of potential branches. |
Overrides
| Edit this page View SourceInstructions
Gets a list of inner instructions for this block flow.
Declaration
public override IReadOnlyList<Instruction> Instructions { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<Instruction> | The inner instructions. |
Overrides
Methods
| Edit this page View SourceGetInstructionBuilder(BasicBlockBuilder, int)
Gets an instruction builder for the nth anonymous instruction in this block flow.
Declaration
public override InstructionBuilder GetInstructionBuilder(BasicBlockBuilder block, int instructionIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| BasicBlockBuilder | block | The block that defines this flow. |
| int | instructionIndex | The index of the anonymous instruction to create a builder for. |
Returns
| Type | Description |
|---|---|
| InstructionBuilder | An instruction builder for an anonymous instruction. |
Overrides
| Edit this page View SourceWithBranches(IReadOnlyList<Branch>)
Replaces this flow's branches with a particular list of branches.
Declaration
public override BlockFlow WithBranches(IReadOnlyList<Branch> branches)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<Branch> | branches | The new branches. |
Returns
| Type | Description |
|---|---|
| BlockFlow | A new flow. |
Overrides
| Edit this page View SourceWithInstructions(IReadOnlyList<Instruction>)
Replaces this flow's inner instructions.
Declaration
public override BlockFlow WithInstructions(IReadOnlyList<Instruction> instructions)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<Instruction> | instructions | The new instructions. |
Returns
| Type | Description |
|---|---|
| BlockFlow | A new flow. |