mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-23 12:58:09 +02:00
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>
107 lines
2.4 KiB
Text
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
|