diff options
author | Eric Anholt <eric@anholt.net> | 2012-05-29 16:18:37 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2012-06-11 09:28:00 -0700 |
commit | 337d9c955b070224f7278524af54ddacd8bb0f17 (patch) | |
tree | 4235c18837cc1f81b0c2f008cc01ce7a6e3a39a8 /src/glsl/opt_copy_propagation_elements.cpp | |
parent | 279efce8bb7b6c802eb6c1de46971153ff6fdedb (diff) | |
download | external_mesa3d-337d9c955b070224f7278524af54ddacd8bb0f17.zip external_mesa3d-337d9c955b070224f7278524af54ddacd8bb0f17.tar.gz external_mesa3d-337d9c955b070224f7278524af54ddacd8bb0f17.tar.bz2 |
glsl: Put a bunch of optimization visitors under anonymous namespaces.
Because these classes are used entirely from their own source files
and not from separate DSOs, the linker gets to produce massively less
code. This cuts about 13k of text in the libdricore case. In the
non-libdricore case, the additional linkage information allows the
compiler to inline some code, so libglsl.a size actually increases by
about 300 bytes.
For a dricore build, improves shader_runner runtime on
glsl-fs-copy-propagation-texcoords-1 by 0.21% +/- 0.03% (n=353574,
outliers removed). No statistically significant difference with n=322
on glslparsertest on a yofrankie shader intended to test compiler
performance.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/glsl/opt_copy_propagation_elements.cpp')
-rw-r--r-- | src/glsl/opt_copy_propagation_elements.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/opt_copy_propagation_elements.cpp b/src/glsl/opt_copy_propagation_elements.cpp index 11d9d7b..de9f4ef 100644 --- a/src/glsl/opt_copy_propagation_elements.cpp +++ b/src/glsl/opt_copy_propagation_elements.cpp @@ -49,6 +49,8 @@ static bool debug = false; +namespace { + class acp_entry : public exec_node { public: @@ -135,6 +137,8 @@ public: void *shader_mem_ctx; }; +} /* unnamed namespace */ + ir_visitor_status ir_copy_propagation_elements_visitor::visit_enter(ir_function_signature *ir) { |