Split loop header from condition testing for for/while loops.

This commit is contained in:
Dejan Mircevski 2016-01-20 11:51:43 -05:00
parent 7349eab099
commit 213bbbe4a7
14 changed files with 1905 additions and 1828 deletions

View file

@ -8,12 +8,12 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 137
// Id's are bound by 138
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 97 107
EntryPoint Fragment 4 "main" 40 98 108
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
@ -38,14 +38,14 @@ Linked fragment stage:
Name 68 "x"
Name 70 "localArray"
Name 75 "i"
Name 83 "a"
Name 89 "condition"
Name 97 "color"
Name 107 "gl_FragColor"
Name 127 "samp2D"
Name 133 "foo"
Name 134 "foo2"
Name 136 "uFloatArray"
Name 84 "a"
Name 90 "condition"
Name 98 "color"
Name 108 "gl_FragColor"
Name 128 "samp2D"
Name 134 "foo"
Name 135 "foo2"
Name 137 "uFloatArray"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -80,26 +80,26 @@ Linked fragment stage:
48: TypePointer Function 47
52: TypePointer Function 6(int)
69: 6(int) Constant 5
81: 6(int) Constant 16
85: 7(float) Constant 0
89(condition): 20(ptr) Variable UniformConstant
95: 6(int) Constant 3
96: TypePointer Input 9(fvec4)
97(color): 96(ptr) Variable Input
99: TypePointer Function 9(fvec4)
101: 32(int) Constant 1
104: 32(int) Constant 2
106: TypePointer Output 9(fvec4)
107(gl_FragColor): 106(ptr) Variable Output
124: TypeImage 7(float) 2D sampled format:Unknown
125: TypeSampledImage 124
126: TypePointer UniformConstant 125
127(samp2D): 126(ptr) Variable UniformConstant
132: TypePointer UniformConstant 8(s1)
133(foo): 132(ptr) Variable UniformConstant
134(foo2): 17(ptr) Variable UniformConstant
135: TypePointer UniformConstant 34
136(uFloatArray): 135(ptr) Variable UniformConstant
82: 6(int) Constant 16
86: 7(float) Constant 0
90(condition): 20(ptr) Variable UniformConstant
96: 6(int) Constant 3
97: TypePointer Input 9(fvec4)
98(color): 97(ptr) Variable Input
100: TypePointer Function 9(fvec4)
102: 32(int) Constant 1
105: 32(int) Constant 2
107: TypePointer Output 9(fvec4)
108(gl_FragColor): 107(ptr) Variable Output
125: TypeImage 7(float) 2D sampled format:Unknown
126: TypeSampledImage 125
127: TypePointer UniformConstant 126
128(samp2D): 127(ptr) Variable UniformConstant
133: TypePointer UniformConstant 8(s1)
134(foo): 133(ptr) Variable UniformConstant
135(foo2): 17(ptr) Variable UniformConstant
136: TypePointer UniformConstant 34
137(uFloatArray): 136(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
12(locals2): 11(ptr) Variable Function
@ -108,7 +108,7 @@ Linked fragment stage:
68(x): 52(ptr) Variable Function
70(localArray): 35(ptr) Variable Function
75(i): 52(ptr) Variable Function
83(a): 35(ptr) Variable Function
84(a): 35(ptr) Variable Function
18: 17(ptr) AccessChain 15(foo3) 16
19: 10(s2) Load 18
Store 12(locals2) 19
@ -161,57 +161,59 @@ Linked fragment stage:
Store 75(i) 16
Branch 76
76: Label
80: 6(int) Load 75(i)
82: 23(bool) SLessThan 80 81
LoopMerge 78 79 None
BranchConditional 82 77 78
Branch 80
80: Label
81: 6(int) Load 75(i)
83: 23(bool) SLessThan 81 82
BranchConditional 83 77 78
77: Label
84: 6(int) Load 75(i)
86: 30(ptr) AccessChain 83(a) 84
Store 86 85
85: 6(int) Load 75(i)
87: 30(ptr) AccessChain 84(a) 85
Store 87 86
Branch 79
79: Label
87: 6(int) Load 75(i)
88: 6(int) IAdd 87 28
Store 75(i) 88
88: 6(int) Load 75(i)
89: 6(int) IAdd 88 28
Store 75(i) 89
Branch 76
78: Label
90: 6(int) Load 89(condition)
91: 23(bool) IEqual 90 28
SelectionMerge 93 None
BranchConditional 91 92 93
92: Label
94: 34 Load 70(localArray)
Store 83(a) 94
Branch 93
93: Label
98: 9(fvec4) Load 97(color)
100: 99(ptr) AccessChain 12(locals2) 95
Store 100 98
102: 42(ptr) AccessChain 40(coord) 101
103: 7(float) Load 102
105: 30(ptr) AccessChain 12(locals2) 95 104
Store 105 103
108: 99(ptr) AccessChain 12(locals2) 95
109: 9(fvec4) Load 108
110: 30(ptr) AccessChain 36(localFArray) 37
111: 7(float) Load 110
112: 30(ptr) AccessChain 12(locals2) 27 28
113: 7(float) Load 112
114: 7(float) FAdd 111 113
115: 6(int) Load 68(x)
116: 30(ptr) AccessChain 70(localArray) 115
117: 7(float) Load 116
118: 7(float) FAdd 114 117
119: 6(int) Load 68(x)
120: 30(ptr) AccessChain 83(a) 119
121: 7(float) Load 120
122: 7(float) FAdd 118 121
123: 9(fvec4) VectorTimesScalar 109 122
128: 125 Load 127(samp2D)
129: 38(fvec2) Load 40(coord)
130: 9(fvec4) ImageSampleImplicitLod 128 129
131: 9(fvec4) FMul 123 130
Store 107(gl_FragColor) 131
91: 6(int) Load 90(condition)
92: 23(bool) IEqual 91 28
SelectionMerge 94 None
BranchConditional 92 93 94
93: Label
95: 34 Load 70(localArray)
Store 84(a) 95
Branch 94
94: Label
99: 9(fvec4) Load 98(color)
101: 100(ptr) AccessChain 12(locals2) 96
Store 101 99
103: 42(ptr) AccessChain 40(coord) 102
104: 7(float) Load 103
106: 30(ptr) AccessChain 12(locals2) 96 105
Store 106 104
109: 100(ptr) AccessChain 12(locals2) 96
110: 9(fvec4) Load 109
111: 30(ptr) AccessChain 36(localFArray) 37
112: 7(float) Load 111
113: 30(ptr) AccessChain 12(locals2) 27 28
114: 7(float) Load 113
115: 7(float) FAdd 112 114
116: 6(int) Load 68(x)
117: 30(ptr) AccessChain 70(localArray) 116
118: 7(float) Load 117
119: 7(float) FAdd 115 118
120: 6(int) Load 68(x)
121: 30(ptr) AccessChain 84(a) 120
122: 7(float) Load 121
123: 7(float) FAdd 119 122
124: 9(fvec4) VectorTimesScalar 110 123
129: 126 Load 128(samp2D)
130: 38(fvec2) Load 40(coord)
131: 9(fvec4) ImageSampleImplicitLod 129 130
132: 9(fvec4) FMul 124 131
Store 108(gl_FragColor) 132
Return
FunctionEnd