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

@@ -176,16 +176,6 @@ ERROR: node is still EOpNull!
0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
0:20 Construct vec4 (temp highp 4-component vector of float)
0:20 'foo' (global highp float)
0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
0:22 Function Parameters:
0:22 'a' (in highp 4-component vector of float)
0:24 Sequence
0:24 Sequence
0:24 move second child to first child (temp highp 4-component vector of float)
0:24 'b' (temp highp 4-component vector of float)
0:24 'a' (in highp 4-component vector of float)
0:25 Branch: Return with expression
0:25 'b' (temp highp 4-component vector of float)
0:47 Sequence
0:47 move second child to first child (temp highp int)
0:47 'q1' (global highp int)
@@ -256,25 +246,6 @@ ERROR: node is still EOpNull!
0:123 'bar107' (global highp int)
0:128 Constant:
0:128 5 (const int)
0:131 Function Definition: foo203209409( (global void)
0:131 Function Parameters:
0:134 Sequence
0:134 add second child into first child (temp highp int)
0:133 'bar107' (global highp int)
0:134 Constant:
0:134 37 (const int)
0:135 multiply second child into first child (temp highp int)
0:135 'bar107' (global highp int)
0:136 Constant:
0:136 38 (const int)
0:137 divide second child into first child (temp highp int)
0:137 'bar107' (global highp int)
0:138 Constant:
0:138 39 (const int)
0:139 add (temp highp int)
0:139 'bar107' (global highp int)
0:140 Constant:
0:140 41 (const int)
0:? Linker Objects
0:? 'foo' (global highp float)
0:? 'goodDecl' (global highp int)