A removed block releases its instructions, so Module::idToInstruction suddenly contains dangling references. The original motivation for block removal was to skip some unreachable blocks, but that's already achieved by InReadableOrder.cpp. Also updated stale comments.
234 lines
10 KiB
Plaintext
234 lines
10 KiB
Plaintext
spv.shortCircuit.frag
|
|
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 144
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 12 24
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Source GLSL 400
|
|
Name 4 "main"
|
|
Name 8 "foo("
|
|
Name 12 "of1"
|
|
Name 24 "of4"
|
|
Name 27 "ub"
|
|
Name 31 "ui"
|
|
Name 41 "uba"
|
|
Name 110 "uf"
|
|
Name 137 "uiv4"
|
|
Name 139 "uv4"
|
|
Name 142 "ub41"
|
|
Name 143 "ub42"
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeBool
|
|
7: TypeFunction 6(bool)
|
|
10: TypeFloat 32
|
|
11: TypePointer Output 10(float)
|
|
12(of1): 11(ptr) Variable Output
|
|
14: 10(float) Constant 1065353216
|
|
17: 10(float) Constant 1092616192
|
|
21: 10(float) Constant 0
|
|
22: TypeVector 10(float) 4
|
|
23: TypePointer Output 22(fvec4)
|
|
24(of4): 23(ptr) Variable Output
|
|
25: 22(fvec4) ConstantComposite 21 21 21 21
|
|
26: TypePointer UniformConstant 6(bool)
|
|
27(ub): 26(ptr) Variable UniformConstant
|
|
29: TypeInt 32 1
|
|
30: TypePointer UniformConstant 29(int)
|
|
31(ui): 30(ptr) Variable UniformConstant
|
|
33: 29(int) Constant 2
|
|
41(uba): 26(ptr) Variable UniformConstant
|
|
109: TypePointer UniformConstant 10(float)
|
|
110(uf): 109(ptr) Variable UniformConstant
|
|
113: 10(float) Constant 1082130432
|
|
135: TypeVector 29(int) 4
|
|
136: TypePointer UniformConstant 135(ivec4)
|
|
137(uiv4): 136(ptr) Variable UniformConstant
|
|
138: TypePointer UniformConstant 22(fvec4)
|
|
139(uv4): 138(ptr) Variable UniformConstant
|
|
140: TypeVector 6(bool) 4
|
|
141: TypePointer UniformConstant 140(bvec4)
|
|
142(ub41): 141(ptr) Variable UniformConstant
|
|
143(ub42): 141(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
Store 12(of1) 21
|
|
Store 24(of4) 25
|
|
28: 6(bool) Load 27(ub)
|
|
32: 29(int) Load 31(ui)
|
|
34: 6(bool) SGreaterThan 32 33
|
|
35: 6(bool) LogicalOr 28 34
|
|
SelectionMerge 37 None
|
|
BranchConditional 35 36 37
|
|
36: Label
|
|
38: 10(float) Load 12(of1)
|
|
39: 10(float) FAdd 38 14
|
|
Store 12(of1) 39
|
|
Branch 37
|
|
37: Label
|
|
40: 6(bool) Load 27(ub)
|
|
42: 6(bool) Load 41(uba)
|
|
43: 6(bool) LogicalNot 42
|
|
44: 6(bool) LogicalAnd 40 43
|
|
SelectionMerge 46 None
|
|
BranchConditional 44 45 46
|
|
45: Label
|
|
47: 10(float) Load 12(of1)
|
|
48: 10(float) FAdd 47 14
|
|
Store 12(of1) 48
|
|
Branch 46
|
|
46: Label
|
|
49: 6(bool) Load 27(ub)
|
|
50: 6(bool) LogicalNot 49
|
|
SelectionMerge 52 None
|
|
BranchConditional 50 51 52
|
|
51: Label
|
|
53: 6(bool) FunctionCall 8(foo()
|
|
Branch 52
|
|
52: Label
|
|
54: 6(bool) Phi 49 46 53 51
|
|
SelectionMerge 56 None
|
|
BranchConditional 54 55 56
|
|
55: Label
|
|
57: 10(float) Load 12(of1)
|
|
58: 10(float) FAdd 57 14
|
|
Store 12(of1) 58
|
|
Branch 56
|
|
56: Label
|
|
59: 6(bool) Load 27(ub)
|
|
SelectionMerge 61 None
|
|
BranchConditional 59 60 61
|
|
60: Label
|
|
62: 6(bool) FunctionCall 8(foo()
|
|
Branch 61
|
|
61: Label
|
|
63: 6(bool) Phi 59 56 62 60
|
|
SelectionMerge 65 None
|
|
BranchConditional 63 64 65
|
|
64: Label
|
|
66: 10(float) Load 12(of1)
|
|
67: 10(float) FAdd 66 14
|
|
Store 12(of1) 67
|
|
Branch 65
|
|
65: Label
|
|
68: 6(bool) FunctionCall 8(foo()
|
|
69: 6(bool) Load 27(ub)
|
|
70: 6(bool) LogicalOr 68 69
|
|
SelectionMerge 72 None
|
|
BranchConditional 70 71 72
|
|
71: Label
|
|
73: 10(float) Load 12(of1)
|
|
74: 10(float) FAdd 73 14
|
|
Store 12(of1) 74
|
|
Branch 72
|
|
72: Label
|
|
75: 6(bool) FunctionCall 8(foo()
|
|
76: 6(bool) Load 27(ub)
|
|
77: 6(bool) LogicalAnd 75 76
|
|
SelectionMerge 79 None
|
|
BranchConditional 77 78 79
|
|
78: Label
|
|
80: 10(float) Load 12(of1)
|
|
81: 10(float) FAdd 80 14
|
|
Store 12(of1) 81
|
|
Branch 79
|
|
79: Label
|
|
82: 6(bool) Load 27(ub)
|
|
83: 6(bool) LogicalNot 82
|
|
SelectionMerge 85 None
|
|
BranchConditional 83 84 85
|
|
84: Label
|
|
86: 10(float) Load 12(of1)
|
|
87: 10(float) FAdd 86 14
|
|
Store 12(of1) 87
|
|
88: 6(bool) FOrdGreaterThan 87 14
|
|
Branch 85
|
|
85: Label
|
|
89: 6(bool) Phi 82 79 88 84
|
|
SelectionMerge 91 None
|
|
BranchConditional 89 90 91
|
|
90: Label
|
|
92: 22(fvec4) Load 24(of4)
|
|
93: 22(fvec4) CompositeConstruct 14 14 14 14
|
|
94: 22(fvec4) FAdd 92 93
|
|
Store 24(of4) 94
|
|
Branch 91
|
|
91: Label
|
|
95: 10(float) Load 12(of1)
|
|
96: 10(float) FAdd 95 14
|
|
Store 12(of1) 96
|
|
97: 6(bool) FOrdGreaterThan 96 14
|
|
98: 6(bool) Load 27(ub)
|
|
99: 6(bool) LogicalOr 97 98
|
|
SelectionMerge 101 None
|
|
BranchConditional 99 100 101
|
|
100: Label
|
|
102: 22(fvec4) Load 24(of4)
|
|
103: 22(fvec4) CompositeConstruct 14 14 14 14
|
|
104: 22(fvec4) FAdd 102 103
|
|
Store 24(of4) 104
|
|
Branch 101
|
|
101: Label
|
|
105: 6(bool) Load 27(ub)
|
|
106: 6(bool) LogicalNot 105
|
|
SelectionMerge 108 None
|
|
BranchConditional 106 107 108
|
|
107: Label
|
|
111: 10(float) Load 110(uf)
|
|
112: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 111
|
|
114: 10(float) FMul 112 113
|
|
115: 10(float) Load 12(of1)
|
|
116: 6(bool) FOrdGreaterThan 114 115
|
|
Branch 108
|
|
108: Label
|
|
117: 6(bool) Phi 105 101 116 107
|
|
SelectionMerge 119 None
|
|
BranchConditional 117 118 119
|
|
118: Label
|
|
120: 10(float) Load 12(of1)
|
|
121: 10(float) FAdd 120 14
|
|
Store 12(of1) 121
|
|
Branch 119
|
|
119: Label
|
|
122: 6(bool) Load 27(ub)
|
|
SelectionMerge 124 None
|
|
BranchConditional 122 123 124
|
|
123: Label
|
|
125: 10(float) Load 110(uf)
|
|
126: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 125
|
|
127: 10(float) FMul 126 113
|
|
128: 10(float) Load 12(of1)
|
|
129: 6(bool) FOrdGreaterThan 127 128
|
|
Branch 124
|
|
124: Label
|
|
130: 6(bool) Phi 122 119 129 123
|
|
SelectionMerge 132 None
|
|
BranchConditional 130 131 132
|
|
131: Label
|
|
133: 10(float) Load 12(of1)
|
|
134: 10(float) FAdd 133 14
|
|
Store 12(of1) 134
|
|
Branch 132
|
|
132: Label
|
|
Return
|
|
FunctionEnd
|
|
8(foo(): 6(bool) Function None 7
|
|
9: Label
|
|
13: 10(float) Load 12(of1)
|
|
15: 10(float) FAdd 13 14
|
|
Store 12(of1) 15
|
|
16: 10(float) Load 12(of1)
|
|
18: 6(bool) FOrdGreaterThan 16 17
|
|
ReturnValue 18
|
|
FunctionEnd
|