summaryrefslogtreecommitdiffstats
path: root/src/glsl/opt_constant_variable.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2012-05-29 16:18:37 -0700
committerEric Anholt <eric@anholt.net>2012-06-11 09:28:00 -0700
commit337d9c955b070224f7278524af54ddacd8bb0f17 (patch)
tree4235c18837cc1f81b0c2f008cc01ce7a6e3a39a8 /src/glsl/opt_constant_variable.cpp
parent279efce8bb7b6c802eb6c1de46971153ff6fdedb (diff)
downloadexternal_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_constant_variable.cpp')
-rw-r--r--src/glsl/opt_constant_variable.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/opt_constant_variable.cpp b/src/glsl/opt_constant_variable.cpp
index f3bc867..1bbaf8e 100644
--- a/src/glsl/opt_constant_variable.cpp
+++ b/src/glsl/opt_constant_variable.cpp
@@ -37,6 +37,8 @@
#include "ir_optimization.h"
#include "glsl_types.h"
+namespace {
+
struct assignment_entry {
exec_node link;
int assignment_count;
@@ -55,6 +57,8 @@ public:
exec_list list;
};
+} /* unnamed namespace */
+
static struct assignment_entry *
get_assignment_entry(ir_variable *var, exec_list *list)
{