struct SPIRBlock

Defined at line 783 of file ../../third_party/spirv-cross/src/spirv_common.hpp

Public Members

Terminator terminator
Merge merge
Hints hint
TypedID next_block
TypedID merge_block
TypedID continue_block
TypedID return_value
TypedID condition
TypedID true_block
TypedID false_block
TypedID default_block
 mesh
SmallVector ops
SmallVector phi_variables
SmallVector declare_temporary
SmallVector potential_declare_temporary
SmallVector cases_32bit
SmallVector cases_64bit
bool disable_block_optimization
bool complex_continue
bool need_ladder_break
TypedID ignore_phi_from_block
TypedID loop_dominator
SmallVector dominated_variables
SmallVector loop_variables
SmallVector invalidate_expressions

Public Methods

IVariant * clone (ObjectPoolBase * pool)

Defined at line 932 of file ../../third_party/spirv-cross/src/spirv_common.hpp

Enumerations

enum (unnamed)
Name Value
type TypeBlock

Defined at line 785 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum Terminator
Name Value Comments
Unknown 0 --
Direct 1

Emit next block directly without a particular condition.

Select 2

Block ends with an if/else block.

MultiSelect 3

Block ends with switch statement.

Return 4

Block ends with return.

Unreachable 5

Noop

Kill 6

Discard

IgnoreIntersection 7

Ray Tracing

TerminateRay 8

Ray Tracing

EmitMeshTasks 9

Mesh shaders

Defined at line 790 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum Merge
Name Value
MergeNone 0
MergeLoop 1
MergeSelection 2

Defined at line 806 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum Hints
Name Value
HintNone 0
HintUnroll 1
HintDontUnroll 2
HintFlatten 3
HintDontFlatten 4

Defined at line 813 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum Method
Name Value
MergeToSelectForLoop 0
MergeToDirectForLoop 1
MergeToSelectContinueForLoop 2

Defined at line 822 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum ContinueBlockType
Name Value Comments
ContinueNone 0 --
ForLoop 1

Continue block is branchless and has at least one instruction.

WhileLoop 2

Noop continue block.

DoWhileLoop 3

Continue block is conditional.

ComplexLoop 4

Highly unlikely that anything will use this,
since it is really awkward/impossible to express in GLSL.

Defined at line 829 of file ../../third_party/spirv-cross/src/spirv_common.hpp

enum (unnamed) : uint32_t
Name Value
NoDominator 0xffffffffu

Defined at line 847 of file ../../third_party/spirv-cross/src/spirv_common.hpp

Records