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:
@@ -5,12 +5,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 112
|
||||
// Id's are bound by 114
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 23 57 59 71
|
||||
EntryPoint Fragment 4 "main" 23 59 61 73
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
@@ -19,29 +19,29 @@ Linked fragment stage:
|
||||
Name 19 "boolfun(vb2;"
|
||||
Name 18 "bv2"
|
||||
Name 23 "highfin"
|
||||
Name 36 "sum"
|
||||
Name 38 "uniform_medium"
|
||||
Name 40 "uniform_high"
|
||||
Name 46 "uniform_low"
|
||||
Name 51 "arg1"
|
||||
Name 53 "arg2"
|
||||
Name 55 "d"
|
||||
Name 57 "lowfin"
|
||||
Name 59 "mediumfin"
|
||||
Name 63 "global_highp"
|
||||
Name 67 "local_highp"
|
||||
Name 71 "mediumfout"
|
||||
Name 102 "ub2"
|
||||
Name 103 "param"
|
||||
Decorate 36(sum) RelaxedPrecision
|
||||
Decorate 38(uniform_medium) RelaxedPrecision
|
||||
Decorate 46(uniform_low) RelaxedPrecision
|
||||
Decorate 51(arg1) RelaxedPrecision
|
||||
Decorate 53(arg2) RelaxedPrecision
|
||||
Decorate 55(d) RelaxedPrecision
|
||||
Decorate 57(lowfin) RelaxedPrecision
|
||||
Decorate 59(mediumfin) RelaxedPrecision
|
||||
Decorate 71(mediumfout) RelaxedPrecision
|
||||
Name 38 "sum"
|
||||
Name 40 "uniform_medium"
|
||||
Name 42 "uniform_high"
|
||||
Name 48 "uniform_low"
|
||||
Name 53 "arg1"
|
||||
Name 55 "arg2"
|
||||
Name 57 "d"
|
||||
Name 59 "lowfin"
|
||||
Name 61 "mediumfin"
|
||||
Name 65 "global_highp"
|
||||
Name 69 "local_highp"
|
||||
Name 73 "mediumfout"
|
||||
Name 104 "ub2"
|
||||
Name 105 "param"
|
||||
Decorate 38(sum) RelaxedPrecision
|
||||
Decorate 40(uniform_medium) RelaxedPrecision
|
||||
Decorate 48(uniform_low) RelaxedPrecision
|
||||
Decorate 53(arg1) RelaxedPrecision
|
||||
Decorate 55(arg2) RelaxedPrecision
|
||||
Decorate 57(d) RelaxedPrecision
|
||||
Decorate 59(lowfin) RelaxedPrecision
|
||||
Decorate 61(mediumfin) RelaxedPrecision
|
||||
Decorate 73(mediumfout) RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -56,105 +56,105 @@ Linked fragment stage:
|
||||
21: TypeVector 6(float) 4
|
||||
22: TypePointer Input 21(fvec4)
|
||||
23(highfin): 22(ptr) Variable Input
|
||||
28: 14(bool) ConstantFalse
|
||||
29: 14(bool) ConstantTrue
|
||||
30: 15(bvec2) ConstantComposite 28 29
|
||||
34: TypeInt 32 1
|
||||
35: TypePointer Function 34(int)
|
||||
37: TypePointer UniformConstant 34(int)
|
||||
38(uniform_medium): 37(ptr) Variable UniformConstant
|
||||
40(uniform_high): 37(ptr) Variable UniformConstant
|
||||
46(uniform_low): 37(ptr) Variable UniformConstant
|
||||
50: TypePointer Function 6(float)
|
||||
52: 6(float) Constant 1078774989
|
||||
54: 6(float) Constant 1232730691
|
||||
56: TypePointer Input 6(float)
|
||||
57(lowfin): 56(ptr) Variable Input
|
||||
59(mediumfin): 56(ptr) Variable Input
|
||||
62: TypePointer Private 6(float)
|
||||
63(global_highp): 62(ptr) Variable Private
|
||||
66: TypePointer Function 21(fvec4)
|
||||
70: TypePointer Output 21(fvec4)
|
||||
71(mediumfout): 70(ptr) Variable Output
|
||||
80: 34(int) Constant 4
|
||||
82: TypeVector 34(int) 2
|
||||
90: TypeInt 32 0
|
||||
91: 90(int) Constant 0
|
||||
101: TypePointer UniformConstant 15(bvec2)
|
||||
102(ub2): 101(ptr) Variable UniformConstant
|
||||
109: 6(float) Constant 1065353216
|
||||
29: 14(bool) ConstantFalse
|
||||
30: 14(bool) ConstantTrue
|
||||
31: 15(bvec2) ConstantComposite 29 30
|
||||
36: TypeInt 32 1
|
||||
37: TypePointer Function 36(int)
|
||||
39: TypePointer UniformConstant 36(int)
|
||||
40(uniform_medium): 39(ptr) Variable UniformConstant
|
||||
42(uniform_high): 39(ptr) Variable UniformConstant
|
||||
48(uniform_low): 39(ptr) Variable UniformConstant
|
||||
52: TypePointer Function 6(float)
|
||||
54: 6(float) Constant 1078774989
|
||||
56: 6(float) Constant 1232730691
|
||||
58: TypePointer Input 6(float)
|
||||
59(lowfin): 58(ptr) Variable Input
|
||||
61(mediumfin): 58(ptr) Variable Input
|
||||
64: TypePointer Private 6(float)
|
||||
65(global_highp): 64(ptr) Variable Private
|
||||
68: TypePointer Function 21(fvec4)
|
||||
72: TypePointer Output 21(fvec4)
|
||||
73(mediumfout): 72(ptr) Variable Output
|
||||
82: 36(int) Constant 4
|
||||
84: TypeVector 36(int) 2
|
||||
92: TypeInt 32 0
|
||||
93: 92(int) Constant 0
|
||||
103: TypePointer UniformConstant 15(bvec2)
|
||||
104(ub2): 103(ptr) Variable UniformConstant
|
||||
111: 6(float) Constant 1065353216
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
36(sum): 35(ptr) Variable Function
|
||||
51(arg1): 50(ptr) Variable Function
|
||||
53(arg2): 50(ptr) Variable Function
|
||||
55(d): 50(ptr) Variable Function
|
||||
67(local_highp): 66(ptr) Variable Function
|
||||
103(param): 16(ptr) Variable Function
|
||||
39: 34(int) Load 38(uniform_medium)
|
||||
41: 34(int) Load 40(uniform_high)
|
||||
42: 34(int) IAdd 39 41
|
||||
Store 36(sum) 42
|
||||
43: 34(int) Load 40(uniform_high)
|
||||
44: 34(int) Load 36(sum)
|
||||
45: 34(int) IAdd 44 43
|
||||
Store 36(sum) 45
|
||||
47: 34(int) Load 46(uniform_low)
|
||||
48: 34(int) Load 36(sum)
|
||||
49: 34(int) IAdd 48 47
|
||||
Store 36(sum) 49
|
||||
Store 51(arg1) 52
|
||||
Store 53(arg2) 54
|
||||
58: 6(float) Load 57(lowfin)
|
||||
60: 6(float) Load 59(mediumfin)
|
||||
61: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60
|
||||
Store 55(d) 61
|
||||
64: 21(fvec4) Load 23(highfin)
|
||||
65: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 64
|
||||
Store 63(global_highp) 65
|
||||
68: 6(float) Load 63(global_highp)
|
||||
69: 21(fvec4) CompositeConstruct 68 68 68 68
|
||||
Store 67(local_highp) 69
|
||||
72: 6(float) Load 55(d)
|
||||
73: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72
|
||||
74: 21(fvec4) CompositeConstruct 73 73 73 73
|
||||
75: 6(float) Load 53(arg2)
|
||||
38(sum): 37(ptr) Variable Function
|
||||
53(arg1): 52(ptr) Variable Function
|
||||
55(arg2): 52(ptr) Variable Function
|
||||
57(d): 52(ptr) Variable Function
|
||||
69(local_highp): 68(ptr) Variable Function
|
||||
105(param): 16(ptr) Variable Function
|
||||
41: 36(int) Load 40(uniform_medium)
|
||||
43: 36(int) Load 42(uniform_high)
|
||||
44: 36(int) IAdd 41 43
|
||||
Store 38(sum) 44
|
||||
45: 36(int) Load 42(uniform_high)
|
||||
46: 36(int) Load 38(sum)
|
||||
47: 36(int) IAdd 46 45
|
||||
Store 38(sum) 47
|
||||
49: 36(int) Load 48(uniform_low)
|
||||
50: 36(int) Load 38(sum)
|
||||
51: 36(int) IAdd 50 49
|
||||
Store 38(sum) 51
|
||||
Store 53(arg1) 54
|
||||
Store 55(arg2) 56
|
||||
60: 6(float) Load 59(lowfin)
|
||||
62: 6(float) Load 61(mediumfin)
|
||||
63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62
|
||||
Store 57(d) 63
|
||||
66: 21(fvec4) Load 23(highfin)
|
||||
67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66
|
||||
Store 65(global_highp) 67
|
||||
70: 6(float) Load 65(global_highp)
|
||||
71: 21(fvec4) CompositeConstruct 70 70 70 70
|
||||
Store 69(local_highp) 71
|
||||
74: 6(float) Load 57(d)
|
||||
75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
|
||||
76: 21(fvec4) CompositeConstruct 75 75 75 75
|
||||
77: 21(fvec4) FAdd 74 76
|
||||
78: 21(fvec4) Load 67(local_highp)
|
||||
79: 21(fvec4) FAdd 77 78
|
||||
Store 71(mediumfout) 79
|
||||
81: 34(int) Load 46(uniform_low)
|
||||
83: 82(ivec2) CompositeConstruct 81 81
|
||||
84: 34(int) Load 40(uniform_high)
|
||||
85: 82(ivec2) CompositeConstruct 84 84
|
||||
86: 82(ivec2) IMul 83 85
|
||||
87: 34(int) Load 40(uniform_high)
|
||||
88: 82(ivec2) CompositeConstruct 87 87
|
||||
89: 82(ivec2) IAdd 86 88
|
||||
92: 34(int) CompositeExtract 89 0
|
||||
93: 34(int) IAdd 80 92
|
||||
94: 34(int) Load 36(sum)
|
||||
95: 34(int) IAdd 94 93
|
||||
Store 36(sum) 95
|
||||
96: 34(int) Load 36(sum)
|
||||
97: 6(float) ConvertSToF 96
|
||||
98: 21(fvec4) CompositeConstruct 97 97 97 97
|
||||
99: 21(fvec4) Load 71(mediumfout)
|
||||
100: 21(fvec4) FAdd 99 98
|
||||
Store 71(mediumfout) 100
|
||||
104: 15(bvec2) Load 102(ub2)
|
||||
Store 103(param) 104
|
||||
105: 14(bool) FunctionCall 19(boolfun(vb2;) 103(param)
|
||||
SelectionMerge 107 None
|
||||
BranchConditional 105 106 107
|
||||
106: Label
|
||||
108: 21(fvec4) Load 71(mediumfout)
|
||||
110: 21(fvec4) CompositeConstruct 109 109 109 109
|
||||
111: 21(fvec4) FAdd 108 110
|
||||
Store 71(mediumfout) 111
|
||||
Branch 107
|
||||
107: Label
|
||||
77: 6(float) Load 55(arg2)
|
||||
78: 21(fvec4) CompositeConstruct 77 77 77 77
|
||||
79: 21(fvec4) FAdd 76 78
|
||||
80: 21(fvec4) Load 69(local_highp)
|
||||
81: 21(fvec4) FAdd 79 80
|
||||
Store 73(mediumfout) 81
|
||||
83: 36(int) Load 48(uniform_low)
|
||||
85: 84(ivec2) CompositeConstruct 83 83
|
||||
86: 36(int) Load 42(uniform_high)
|
||||
87: 84(ivec2) CompositeConstruct 86 86
|
||||
88: 84(ivec2) IMul 85 87
|
||||
89: 36(int) Load 42(uniform_high)
|
||||
90: 84(ivec2) CompositeConstruct 89 89
|
||||
91: 84(ivec2) IAdd 88 90
|
||||
94: 36(int) CompositeExtract 91 0
|
||||
95: 36(int) IAdd 82 94
|
||||
96: 36(int) Load 38(sum)
|
||||
97: 36(int) IAdd 96 95
|
||||
Store 38(sum) 97
|
||||
98: 36(int) Load 38(sum)
|
||||
99: 6(float) ConvertSToF 98
|
||||
100: 21(fvec4) CompositeConstruct 99 99 99 99
|
||||
101: 21(fvec4) Load 73(mediumfout)
|
||||
102: 21(fvec4) FAdd 101 100
|
||||
Store 73(mediumfout) 102
|
||||
106: 15(bvec2) Load 104(ub2)
|
||||
Store 105(param) 106
|
||||
107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param)
|
||||
SelectionMerge 109 None
|
||||
BranchConditional 107 108 109
|
||||
108: Label
|
||||
110: 21(fvec4) Load 73(mediumfout)
|
||||
112: 21(fvec4) CompositeConstruct 111 111 111 111
|
||||
113: 21(fvec4) FAdd 110 112
|
||||
Store 73(mediumfout) 113
|
||||
Branch 109
|
||||
109: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
12(foo(vf3;): 9(fvec2) Function None 10
|
||||
@@ -167,8 +167,8 @@ Linked fragment stage:
|
||||
19(boolfun(vb2;): 14(bool) Function None 17
|
||||
18(bv2): 16(ptr) FunctionParameter
|
||||
20: Label
|
||||
27: 15(bvec2) Load 18(bv2)
|
||||
31: 15(bvec2) LogicalEqual 27 30
|
||||
32: 14(bool) All 31
|
||||
ReturnValue 32
|
||||
28: 15(bvec2) Load 18(bv2)
|
||||
32: 15(bvec2) LogicalEqual 28 31
|
||||
33: 14(bool) All 32
|
||||
ReturnValue 33
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user