Don't remove SPIR-V blocks before codegen.
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.
This commit is contained in:
@@ -7,26 +7,26 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 143
|
||||
// Id's are bound by 144
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 23
|
||||
EntryPoint Fragment 4 "main" 12 24
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 8 "foo("
|
||||
Name 12 "of1"
|
||||
Name 23 "of4"
|
||||
Name 26 "ub"
|
||||
Name 30 "ui"
|
||||
Name 40 "uba"
|
||||
Name 109 "uf"
|
||||
Name 136 "uiv4"
|
||||
Name 138 "uv4"
|
||||
Name 141 "ub41"
|
||||
Name 142 "ub42"
|
||||
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
|
||||
@@ -36,190 +36,190 @@ Linked fragment stage:
|
||||
12(of1): 11(ptr) Variable Output
|
||||
14: 10(float) Constant 1065353216
|
||||
17: 10(float) Constant 1092616192
|
||||
20: 10(float) Constant 0
|
||||
21: TypeVector 10(float) 4
|
||||
22: TypePointer Output 21(fvec4)
|
||||
23(of4): 22(ptr) Variable Output
|
||||
24: 21(fvec4) ConstantComposite 20 20 20 20
|
||||
25: TypePointer UniformConstant 6(bool)
|
||||
26(ub): 25(ptr) Variable UniformConstant
|
||||
28: TypeInt 32 1
|
||||
29: TypePointer UniformConstant 28(int)
|
||||
30(ui): 29(ptr) Variable UniformConstant
|
||||
32: 28(int) Constant 2
|
||||
40(uba): 25(ptr) Variable UniformConstant
|
||||
108: TypePointer UniformConstant 10(float)
|
||||
109(uf): 108(ptr) Variable UniformConstant
|
||||
112: 10(float) Constant 1082130432
|
||||
134: TypeVector 28(int) 4
|
||||
135: TypePointer UniformConstant 134(ivec4)
|
||||
136(uiv4): 135(ptr) Variable UniformConstant
|
||||
137: TypePointer UniformConstant 21(fvec4)
|
||||
138(uv4): 137(ptr) Variable UniformConstant
|
||||
139: TypeVector 6(bool) 4
|
||||
140: TypePointer UniformConstant 139(bvec4)
|
||||
141(ub41): 140(ptr) Variable UniformConstant
|
||||
142(ub42): 140(ptr) Variable UniformConstant
|
||||
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) 20
|
||||
Store 23(of4) 24
|
||||
27: 6(bool) Load 26(ub)
|
||||
31: 28(int) Load 30(ui)
|
||||
33: 6(bool) SGreaterThan 31 32
|
||||
34: 6(bool) LogicalOr 27 33
|
||||
SelectionMerge 36 None
|
||||
BranchConditional 34 35 36
|
||||
35: Label
|
||||
37: 10(float) Load 12(of1)
|
||||
38: 10(float) FAdd 37 14
|
||||
Store 12(of1) 38
|
||||
Branch 36
|
||||
36: Label
|
||||
39: 6(bool) Load 26(ub)
|
||||
41: 6(bool) Load 40(uba)
|
||||
42: 6(bool) LogicalNot 41
|
||||
43: 6(bool) LogicalAnd 39 42
|
||||
SelectionMerge 45 None
|
||||
BranchConditional 43 44 45
|
||||
44: Label
|
||||
46: 10(float) Load 12(of1)
|
||||
47: 10(float) FAdd 46 14
|
||||
Store 12(of1) 47
|
||||
Branch 45
|
||||
45: Label
|
||||
48: 6(bool) Load 26(ub)
|
||||
49: 6(bool) LogicalNot 48
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 51
|
||||
50: Label
|
||||
52: 6(bool) FunctionCall 8(foo()
|
||||
Branch 51
|
||||
51: Label
|
||||
53: 6(bool) Phi 48 45 52 50
|
||||
SelectionMerge 55 None
|
||||
BranchConditional 53 54 55
|
||||
54: Label
|
||||
56: 10(float) Load 12(of1)
|
||||
57: 10(float) FAdd 56 14
|
||||
Store 12(of1) 57
|
||||
Branch 55
|
||||
55: Label
|
||||
58: 6(bool) Load 26(ub)
|
||||
SelectionMerge 60 None
|
||||
BranchConditional 58 59 60
|
||||
59: Label
|
||||
61: 6(bool) FunctionCall 8(foo()
|
||||
Branch 60
|
||||
60: Label
|
||||
62: 6(bool) Phi 58 55 61 59
|
||||
SelectionMerge 64 None
|
||||
BranchConditional 62 63 64
|
||||
63: Label
|
||||
65: 10(float) Load 12(of1)
|
||||
66: 10(float) FAdd 65 14
|
||||
Store 12(of1) 66
|
||||
Branch 64
|
||||
64: Label
|
||||
67: 6(bool) FunctionCall 8(foo()
|
||||
68: 6(bool) Load 26(ub)
|
||||
69: 6(bool) LogicalOr 67 68
|
||||
SelectionMerge 71 None
|
||||
BranchConditional 69 70 71
|
||||
70: Label
|
||||
72: 10(float) Load 12(of1)
|
||||
73: 10(float) FAdd 72 14
|
||||
Store 12(of1) 73
|
||||
Branch 71
|
||||
71: Label
|
||||
74: 6(bool) FunctionCall 8(foo()
|
||||
75: 6(bool) Load 26(ub)
|
||||
76: 6(bool) LogicalAnd 74 75
|
||||
SelectionMerge 78 None
|
||||
BranchConditional 76 77 78
|
||||
77: Label
|
||||
79: 10(float) Load 12(of1)
|
||||
80: 10(float) FAdd 79 14
|
||||
Store 12(of1) 80
|
||||
Branch 78
|
||||
78: Label
|
||||
81: 6(bool) Load 26(ub)
|
||||
82: 6(bool) LogicalNot 81
|
||||
SelectionMerge 84 None
|
||||
BranchConditional 82 83 84
|
||||
83: Label
|
||||
85: 10(float) Load 12(of1)
|
||||
86: 10(float) FAdd 85 14
|
||||
Store 12(of1) 86
|
||||
87: 6(bool) FOrdGreaterThan 86 14
|
||||
Branch 84
|
||||
84: Label
|
||||
88: 6(bool) Phi 81 78 87 83
|
||||
SelectionMerge 90 None
|
||||
BranchConditional 88 89 90
|
||||
89: Label
|
||||
91: 21(fvec4) Load 23(of4)
|
||||
92: 21(fvec4) CompositeConstruct 14 14 14 14
|
||||
93: 21(fvec4) FAdd 91 92
|
||||
Store 23(of4) 93
|
||||
Branch 90
|
||||
90: Label
|
||||
94: 10(float) Load 12(of1)
|
||||
95: 10(float) FAdd 94 14
|
||||
Store 12(of1) 95
|
||||
96: 6(bool) FOrdGreaterThan 95 14
|
||||
97: 6(bool) Load 26(ub)
|
||||
98: 6(bool) LogicalOr 96 97
|
||||
SelectionMerge 100 None
|
||||
BranchConditional 98 99 100
|
||||
99: Label
|
||||
101: 21(fvec4) Load 23(of4)
|
||||
102: 21(fvec4) CompositeConstruct 14 14 14 14
|
||||
103: 21(fvec4) FAdd 101 102
|
||||
Store 23(of4) 103
|
||||
Branch 100
|
||||
100: Label
|
||||
104: 6(bool) Load 26(ub)
|
||||
105: 6(bool) LogicalNot 104
|
||||
SelectionMerge 107 None
|
||||
BranchConditional 105 106 107
|
||||
106: Label
|
||||
110: 10(float) Load 109(uf)
|
||||
111: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 110
|
||||
113: 10(float) FMul 111 112
|
||||
114: 10(float) Load 12(of1)
|
||||
115: 6(bool) FOrdGreaterThan 113 114
|
||||
Branch 107
|
||||
107: Label
|
||||
116: 6(bool) Phi 104 100 115 106
|
||||
SelectionMerge 118 None
|
||||
BranchConditional 116 117 118
|
||||
117: Label
|
||||
119: 10(float) Load 12(of1)
|
||||
120: 10(float) FAdd 119 14
|
||||
Store 12(of1) 120
|
||||
Branch 118
|
||||
118: Label
|
||||
121: 6(bool) Load 26(ub)
|
||||
SelectionMerge 123 None
|
||||
BranchConditional 121 122 123
|
||||
122: Label
|
||||
124: 10(float) Load 109(uf)
|
||||
125: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 124
|
||||
126: 10(float) FMul 125 112
|
||||
127: 10(float) Load 12(of1)
|
||||
128: 6(bool) FOrdGreaterThan 126 127
|
||||
Branch 123
|
||||
123: Label
|
||||
129: 6(bool) Phi 121 118 128 122
|
||||
SelectionMerge 131 None
|
||||
BranchConditional 129 130 131
|
||||
130: Label
|
||||
132: 10(float) Load 12(of1)
|
||||
133: 10(float) FAdd 132 14
|
||||
Store 12(of1) 133
|
||||
Branch 131
|
||||
131: 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
|
||||
|
||||
Reference in New Issue
Block a user