glsl: Hide many classes local to individual .cpp files in anon namespaces.

This gives the compiler the chance to inline and not export class symbols
even in the absence of LTO.  Saves about 60kb on disk.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@.intel.com>
This commit is contained in:
Eric Anholt
2013-09-20 11:03:44 -07:00
parent 07572621bc
commit 10ef949424
33 changed files with 126 additions and 2 deletions

View File

@@ -57,11 +57,13 @@ extern "C" {
#include "program/sampler.h"
}
static int swizzle_for_size(int size);
namespace {
class src_reg;
class dst_reg;
static int swizzle_for_size(int size);
/**
* This struct is a corresponding struct to Mesa prog_src_register, with
* wider fields.
@@ -129,6 +131,8 @@ public:
src_reg *reladdr;
};
} /* anonymous namespace */
src_reg::src_reg(dst_reg reg)
{
this->file = reg.file;
@@ -147,6 +151,8 @@ dst_reg::dst_reg(src_reg reg)
this->reladdr = reg.reladdr;
}
namespace {
class ir_to_mesa_instruction : public exec_node {
public:
DECLARE_RZALLOC_CXX_OPERATORS(ir_to_mesa_instruction)
@@ -316,6 +322,8 @@ public:
void *mem_ctx;
};
} /* anonymous namespace */
static src_reg undef_src = src_reg(PROGRAM_UNDEFINED, 0, NULL);
static dst_reg undef_dst = dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP);
@@ -2407,6 +2415,8 @@ print_program(struct prog_instruction *mesa_instructions,
}
}
namespace {
class add_uniform_to_shader : public program_resource_visitor {
public:
add_uniform_to_shader(struct gl_shader_program *shader_program,
@@ -2436,6 +2446,8 @@ private:
gl_shader_type shader_type;
};
} /* anonymous namespace */
void
add_uniform_to_shader::visit_field(const glsl_type *type, const char *name,
bool row_major)