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.
127 lines
5.6 KiB
Plaintext
Executable File
127 lines
5.6 KiB
Plaintext
Executable File
spv.functionCall.frag
|
|
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 77
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 58 69
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Source GLSL 130
|
|
Name 4 "main"
|
|
Name 11 "foo(vf4;"
|
|
Name 10 "bar"
|
|
Name 13 "bar("
|
|
Name 16 "unreachableReturn("
|
|
Name 18 "missingReturn("
|
|
Name 21 "h"
|
|
Name 35 "d"
|
|
Name 56 "color"
|
|
Name 58 "BaseColor"
|
|
Name 59 "param"
|
|
Name 64 "f"
|
|
Name 66 "g"
|
|
Name 69 "gl_FragColor"
|
|
Name 76 "bigColor"
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
9: TypeFunction 6(float) 8(ptr)
|
|
15: TypeFunction 6(float)
|
|
20: TypePointer Private 6(float)
|
|
21(h): 20(ptr) Variable Private
|
|
22: 6(float) Constant 0
|
|
23: TypeInt 32 0
|
|
24: 23(int) Constant 0
|
|
25: TypePointer Function 6(float)
|
|
28: 23(int) Constant 1
|
|
34: TypePointer UniformConstant 6(float)
|
|
35(d): 34(ptr) Variable UniformConstant
|
|
37: 6(float) Constant 1082549862
|
|
38: TypeBool
|
|
42: 6(float) Constant 1067030938
|
|
45: 6(float) Constant 1083179008
|
|
53: 6(float) Constant 1081711002
|
|
57: TypePointer Input 7(fvec4)
|
|
58(BaseColor): 57(ptr) Variable Input
|
|
68: TypePointer Output 7(fvec4)
|
|
69(gl_FragColor): 68(ptr) Variable Output
|
|
75: TypePointer UniformConstant 7(fvec4)
|
|
76(bigColor): 75(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
56(color): 8(ptr) Variable Function
|
|
59(param): 8(ptr) Variable Function
|
|
64(f): 25(ptr) Variable Function
|
|
66(g): 25(ptr) Variable Function
|
|
Store 21(h) 22
|
|
60: 7(fvec4) Load 58(BaseColor)
|
|
Store 59(param) 60
|
|
61: 6(float) FunctionCall 11(foo(vf4;) 59(param)
|
|
62: 7(fvec4) CompositeConstruct 61 61 61 61
|
|
Store 56(color) 62
|
|
63: 2 FunctionCall 13(bar()
|
|
65: 6(float) FunctionCall 16(unreachableReturn()
|
|
Store 64(f) 65
|
|
67: 6(float) FunctionCall 18(missingReturn()
|
|
Store 66(g) 67
|
|
70: 7(fvec4) Load 56(color)
|
|
71: 6(float) Load 64(f)
|
|
72: 7(fvec4) VectorTimesScalar 70 71
|
|
73: 6(float) Load 21(h)
|
|
74: 7(fvec4) VectorTimesScalar 72 73
|
|
Store 69(gl_FragColor) 74
|
|
Return
|
|
FunctionEnd
|
|
11(foo(vf4;): 6(float) Function None 9
|
|
10(bar): 8(ptr) FunctionParameter
|
|
12: Label
|
|
26: 25(ptr) AccessChain 10(bar) 24
|
|
27: 6(float) Load 26
|
|
29: 25(ptr) AccessChain 10(bar) 28
|
|
30: 6(float) Load 29
|
|
31: 6(float) FAdd 27 30
|
|
ReturnValue 31
|
|
FunctionEnd
|
|
13(bar(): 2 Function None 3
|
|
14: Label
|
|
Return
|
|
FunctionEnd
|
|
16(unreachableReturn(): 6(float) Function None 15
|
|
17: Label
|
|
36: 6(float) Load 35(d)
|
|
39: 38(bool) FOrdLessThan 36 37
|
|
SelectionMerge 41 None
|
|
BranchConditional 39 40 44
|
|
40: Label
|
|
ReturnValue 42
|
|
44: Label
|
|
ReturnValue 45
|
|
41: Label
|
|
47: 6(float) Undef
|
|
ReturnValue 47
|
|
FunctionEnd
|
|
18(missingReturn(): 6(float) Function None 15
|
|
19: Label
|
|
48: 6(float) Load 35(d)
|
|
49: 38(bool) FOrdLessThan 48 45
|
|
SelectionMerge 51 None
|
|
BranchConditional 49 50 51
|
|
50: Label
|
|
52: 6(float) Load 35(d)
|
|
Store 21(h) 52
|
|
ReturnValue 53
|
|
51: Label
|
|
55: 6(float) Undef
|
|
ReturnValue 55
|
|
FunctionEnd
|