Linker: Eliminate uncalled functions, because they can be ill-defined.

Fixes issue #610. Also provides a testing option to keep uncalled functions.
This commit is contained in:
John Kessenich 2016-12-09 19:22:20 -07:00
parent bf6d7f43fd
commit 906cc21816
68 changed files with 101 additions and 7783 deletions

View file

@ -514,172 +514,6 @@ ERROR: node is still EOpNull!
0:58 Barrier (global void)
0:61 Branch: Return
0:63 Barrier (global void)
0:69 Function Definition: foo( (global void)
0:69 Function Parameters:
0:71 Sequence
0:71 gl_Position: direct index for structure (out highp 4-component vector of float Position)
0:71 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:71 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:71 Constant:
0:71 4 (const int)
0:71 Constant:
0:71 0 (const int)
0:73 Barrier (global void)
0:92 Function Definition: foop( (global void)
0:92 Function Parameters:
0:? Sequence
0:95 move second child to first child (temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 fma (global highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:112 Function Definition: pointSize2( (global void)
0:112 Function Parameters:
0:114 Sequence
0:114 Sequence
0:114 move second child to first child (temp highp float)
0:114 'ps' (temp highp float)
0:114 gl_PointSize: direct index for structure (in highp float PointSize)
0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:114 Constant:
0:114 1 (const int)
0:114 Constant:
0:114 1 (const int)
0:115 move second child to first child (temp highp float)
0:115 gl_PointSize: direct index for structure (out highp float PointSize)
0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:115 'gl_InvocationID' (in highp int InvocationID)
0:115 Constant:
0:115 1 (const int)
0:115 'ps' (temp highp float)
0:122 Function Definition: goodfoop( (global void)
0:122 Function Parameters:
0:? Sequence
0:126 multiply second child into first child (temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:127 move second child to first child (temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 fma (global highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:128 move second child to first child (temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 fma (global highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:131 Function Definition: bbBad( (global void)
0:131 Function Parameters:
0:133 Sequence
0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
0:138 Function Definition: bb( (global void)
0:138 Function Parameters:
0:140 Sequence
0:140 move second child to first child (temp highp 4-component vector of float)
0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
0:140 Constant:
0:140 0 (const int)
0:140 Constant:
0:140 0.000000
0:140 0.000000
0:140 0.000000
0:140 0.000000
0:141 move second child to first child (temp highp 4-component vector of float)
0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
0:141 Constant:
0:141 1 (const int)
0:141 Constant:
0:141 1.000000
0:141 1.000000
0:141 1.000000
0:141 1.000000
0:142 move second child to first child (temp highp 4-component vector of float)
0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
0:142 Constant:
0:142 2 (const int)
0:142 Constant:
0:142 2.000000
0:142 2.000000
0:142 2.000000
0:142 2.000000
0:153 Function Definition: outputtingOutparam(i1; (global void)
0:153 Function Parameters:
0:153 'a' (out highp int)
0:155 Sequence
0:155 move second child to first child (temp highp int)
0:155 'a' (out highp int)
0:155 Constant:
0:155 2 (const int)
0:158 Function Definition: outputting( (global void)
0:158 Function Parameters:
0:160 Sequence
0:160 move second child to first child (temp highp int)
0:160 indirect index (temp highp int)
0:160 'outa' (out 4-element array of highp int)
0:160 'gl_InvocationID' (in highp int InvocationID)
0:160 Constant:
0:160 2 (const int)
0:161 move second child to first child (temp highp int)
0:161 direct index (temp highp int)
0:161 'outa' (out 4-element array of highp int)
0:161 Constant:
0:161 1 (const int)
0:161 Constant:
0:161 2 (const int)
0:162 move second child to first child (temp highp 4-component vector of float)
0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position)
0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:162 Constant:
0:162 0 (const int)
0:162 Constant:
0:162 0 (const int)
0:162 Constant:
0:162 1.000000
0:162 1.000000
0:162 1.000000
0:162 1.000000
0:163 direct index (temp highp int)
0:163 'outa' (out 4-element array of highp int)
0:163 Constant:
0:163 1 (const int)
0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:164 Constant:
0:164 0 (const int)
0:165 Function Call: outputtingOutparam(i1; (global void)
0:165 direct index (temp highp int)
0:165 'outa' (out 4-element array of highp int)
0:165 Constant:
0:165 0 (const int)
0:166 Function Call: outputtingOutparam(i1; (global void)
0:166 indirect index (temp highp int)
0:166 'outa' (out 4-element array of highp int)
0:166 'gl_InvocationID' (in highp int InvocationID)
0:167 move second child to first child (temp highp float)
0:167 f: direct index for structure (out highp float)
0:167 direct index (patch temp block{out highp float f})
0:167 'patchIName' (patch out 4-element array of block{out highp float f})
0:167 Constant:
0:167 1 (const int)
0:167 Constant:
0:167 0 (const int)
0:167 Constant:
0:167 3.140000
0:168 move second child to first child (temp highp int)
0:168 indirect index (temp highp int)
0:168 'outa' (out 4-element array of highp int)
0:168 'gl_InvocationID' (in highp int InvocationID)
0:168 Constant:
0:168 2 (const int)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:? 'outa' (out 4-element array of highp int)