glsl/standalone: Enable par-linking
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 15 Sep 2016 18:24:12 +0000 (11:24 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 10 Nov 2016 22:30:49 +0000 (14:30 -0800)
commitd0028b2e1c43392bb476416a1af2097ab17afe7c
tree4af63744b7cc3969782386d6a39a3dc42f22e16c
parent4dc759c8c236e725ff7bbd439e19eada12bf390f
glsl/standalone: Enable par-linking

If the user did not request full linking, link the shader with the
built-in functions, inline them, and eliminate them.  Previous to this
you'd see all these calls to "dot" and "max" in the output.  This
prevented a lot of expected optimizations and cluttered the output.
This gives it some chance of being useful.

v2: Rebase on top of Ken's "built-ins now" work.

v3: Don't do_common_optimizations if par-linking fails.  Update expected
output of warnings tests to prevent 'make check' regressions.

v4: Optimize harder.  Most important, do function inlining.  Otherwise
it's quite impractical for one function in a file to call another
function in the same file.

v5: Add some code simplifications and an assertion suggested by Iago.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/compiler/glsl/standalone.cpp
src/compiler/glsl/tests/warnings/026-out-function-parameter-shaderout.vert.expected
src/compiler/glsl/tests/warnings/027-inout-function-parameter-shaderout.vert.expected
src/compiler/glsl/tests/warnings/030-array-as-function-parameter.vert.expected