 e770b3e6cf
			
		
	
	
		e770b3e6cf
		
	
	
	
	
		
			
			Structured control-flow rules allow leaving the middle of a construct through a return, but not through a jump to a block that does a return. Addresses issue #58.
		
			
				
	
	
		
			79 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| spv.voidFunction.frag
 | |
| 
 | |
| Linked fragment stage:
 | |
| 
 | |
| 
 | |
| // Module Version 99
 | |
| // Generated by (magic number): 51a00bb
 | |
| // Id's are bound by 42
 | |
| 
 | |
|                               Source GLSL 120
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main"
 | |
|                               ExecutionMode 4 OriginLowerLeft
 | |
|                               Name 4  "main"
 | |
|                               Name 6  "foo("
 | |
|                               Name 8  "foo2("
 | |
|                               Name 12  "bar"
 | |
|                               Name 22  "outColor"
 | |
|                               Name 24  "bigColor"
 | |
|                               Name 35  "gl_FragColor"
 | |
|                               Name 39  "BaseColor"
 | |
|                               Name 41  "d"
 | |
|                               Decorate 35(gl_FragColor) BuiltIn FragColor
 | |
|                               Decorate 39(BaseColor) Smooth
 | |
|                               Decorate 39(BaseColor) NoStaticUse
 | |
|                               Decorate 41(d) NoStaticUse
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|               10:             TypeFloat 32
 | |
|               11:             TypePointer PrivateGlobal 10(float)
 | |
|          12(bar):     11(ptr) Variable PrivateGlobal
 | |
|               13:   10(float) Constant 1073741824
 | |
|               15:   10(float) Constant 1065353216
 | |
|               20:             TypeVector 10(float) 4
 | |
|               21:             TypePointer Function 20(fvec4)
 | |
|               23:             TypePointer UniformConstant 20(fvec4)
 | |
|     24(bigColor):     23(ptr) Variable UniformConstant
 | |
|               34:             TypePointer Output 20(fvec4)
 | |
| 35(gl_FragColor):     34(ptr) Variable Output
 | |
|               38:             TypePointer Input 20(fvec4)
 | |
|    39(BaseColor):     38(ptr) Variable Input
 | |
|               40:             TypePointer UniformConstant 10(float)
 | |
|            41(d):     40(ptr) Variable UniformConstant
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|     22(outColor):     21(ptr) Variable Function
 | |
|                               Store 12(bar) 13
 | |
|               25:   20(fvec4) Load 24(bigColor)
 | |
|                               Store 22(outColor) 25
 | |
|               26:           2 FunctionCall 6(foo()
 | |
|               27:           2 FunctionCall 8(foo2()
 | |
|               28:   10(float) Load 12(bar)
 | |
|               29:   20(fvec4) Load 22(outColor)
 | |
|               30:   10(float) CompositeExtract 29 0
 | |
|               31:   10(float) FAdd 30 28
 | |
|               32:   20(fvec4) Load 22(outColor)
 | |
|               33:   20(fvec4) CompositeInsert 31 32 0
 | |
|                               Store 22(outColor) 33
 | |
|               36:   20(fvec4) Load 22(outColor)
 | |
|                               Store 35(gl_FragColor) 36
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|          6(foo():           2 Function None 3
 | |
|                7:             Label
 | |
|               14:   10(float) Load 12(bar)
 | |
|               16:   10(float) FAdd 14 15
 | |
|                               Store 12(bar) 16
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|         8(foo2():           2 Function None 3
 | |
|                9:             Label
 | |
|               18:   10(float) Load 12(bar)
 | |
|               19:   10(float) FAdd 18 15
 | |
|                               Store 12(bar) 19
 | |
|                               Return
 | |
|                               FunctionEnd
 |