diff options
author | Eric Anholt <[email protected]> | 2012-03-19 13:27:06 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-04-13 16:59:45 -0700 |
commit | 599aac95ff2149d881177ed75a48d97d3dcf47bd (patch) | |
tree | 818c68d35f968e443bf03e3ef73c24e7c706bfe9 /src/glsl/Makefile.sources | |
parent | 0e8ad4cc749626eebbc7f916e551bbfd80b75023 (diff) |
glsl: Create an ir_builder helper for hand-generating IR.
The C++ constructors with placement new, while functional, are
extremely verbose, leading to generation of simple GLSL IR expressions
like (a * b + c * d) expanding to many lines of code and using lots of
temporary variables. By creating a new ir_builder.h that puts simple
generators in our namespace and taking advantage of ralloc_parent(),
we can generate much more compact code, at a minor runtime cost.
v2: Replace ir_instruction usage with just ir_rvalue.
v3: Drop remaining missed as_rvalue() in v2.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/Makefile.sources')
-rw-r--r-- | src/glsl/Makefile.sources | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/Makefile.sources b/src/glsl/Makefile.sources index 15f5e1f50a6..5621e42b2d8 100644 --- a/src/glsl/Makefile.sources +++ b/src/glsl/Makefile.sources @@ -26,6 +26,7 @@ LIBGLSL_CXX_FILES := \ glsl_symbol_table.cpp \ hir_field_selection.cpp \ ir_basic_block.cpp \ + ir_builder.cpp \ ir_clone.cpp \ ir_constant_expression.cpp \ ir.cpp \ |