mesa/src/glsl/Makefile.sources
Eric Anholt 599aac95ff 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 <kenneth@whitecape.org>
2012-04-13 16:59:45 -07:00

107 lines
2.4 KiB
Text

# shared source lists for Makefile, SConscript, and Android.mk
# libglcpp
LIBGLCPP_FILES := \
glcpp/pp.c
LIBGLCPP_GENERATED_FILES := \
glcpp/glcpp-lex.c \
glcpp/glcpp-parse.c
# libglsl
LIBGLSL_FILES := \
strtod.c \
ralloc.c
LIBGLSL_CXX_FILES := \
ast_expr.cpp \
ast_function.cpp \
ast_to_hir.cpp \
ast_type.cpp \
builtin_variables.cpp \
glsl_parser_extras.cpp \
glsl_types.cpp \
glsl_symbol_table.cpp \
hir_field_selection.cpp \
ir_basic_block.cpp \
ir_builder.cpp \
ir_clone.cpp \
ir_constant_expression.cpp \
ir.cpp \
ir_expression_flattening.cpp \
ir_function_can_inline.cpp \
ir_function_detect_recursion.cpp \
ir_function.cpp \
ir_hierarchical_visitor.cpp \
ir_hv_accept.cpp \
ir_import_prototypes.cpp \
ir_print_visitor.cpp \
ir_reader.cpp \
ir_rvalue_visitor.cpp \
ir_set_program_inouts.cpp \
ir_validate.cpp \
ir_variable_refcount.cpp \
linker.cpp \
link_functions.cpp \
link_uniforms.cpp \
loop_analysis.cpp \
loop_controls.cpp \
loop_unroll.cpp \
lower_clip_distance.cpp \
lower_discard.cpp \
lower_if_to_cond_assign.cpp \
lower_instructions.cpp \
lower_jumps.cpp \
lower_mat_op_to_vec.cpp \
lower_noise.cpp \
lower_texture_projection.cpp \
lower_variable_index_to_cond_assign.cpp \
lower_vec_index_to_cond_assign.cpp \
lower_vec_index_to_swizzle.cpp \
lower_vector.cpp \
lower_output_reads.cpp \
opt_algebraic.cpp \
opt_array_splitting.cpp \
opt_constant_folding.cpp \
opt_constant_propagation.cpp \
opt_constant_variable.cpp \
opt_copy_propagation.cpp \
opt_copy_propagation_elements.cpp \
opt_dead_code.cpp \
opt_dead_code_local.cpp \
opt_dead_functions.cpp \
opt_discard_simplification.cpp \
opt_function_inlining.cpp \
opt_if_simplification.cpp \
opt_noop_swizzle.cpp \
opt_redundant_jumps.cpp \
opt_structure_splitting.cpp \
opt_swizzle_swizzle.cpp \
opt_tree_grafting.cpp \
s_expression.cpp
# glsl_compiler
GLSL_COMPILER_CXX_FILES := \
standalone_scaffolding.cpp \
main.cpp
# builtin_compiler
#
# This is built before libglsl to generate builtin_funciton.cpp for libglsl.
# For this to work, a dummy version of builtin_function.cpp,
# builtin_stubs.cpp, is used.
BUILTIN_COMPILER_CXX_FILES := \
builtin_stubs.cpp
BUILTIN_COMPILER_GENERATED_CXX_FILES := \
glsl_lexer.cpp \
glsl_parser.cpp
# libglsl generated sources
LIBGLSL_GENERATED_CXX_FILES := \
$(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
builtin_function.cpp