mesa/src/intel/compiler
Lionel Landwerlin 1835bf3520
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
brw: avoid calling lower_indirect_derefs multiple times
Lowering the indirect derefs multiple times leads to very inefficient
shaders because of all the control flow inserted.

In particular on some DGC tests with mesh shaders, the tests can spin
for 1hour on an i7 and still not complete compilation.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33809>
2025-03-09 20:52:01 +00:00
..
elk treewide: port remaining nir_metadata_preserve users 2025-02-26 15:19:53 +00:00
tests brw: Rename shared function enums for clarity 2025-02-27 08:49:24 +00:00
brw_analysis.cpp intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_analysis.h brw: Use brw_inst::block in Def analysis 2025-03-06 23:33:38 +00:00
brw_analysis_def.cpp brw: Use brw_inst::block in Def analysis 2025-03-06 23:33:38 +00:00
brw_analysis_liveness.cpp intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_analysis_performance.cpp intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_asm.c brw: Rework label tracking in assembler 2025-03-06 17:06:20 -08:00
brw_asm.h brw: Fix size in assembler when compacting 2025-03-03 20:43:56 +00:00
brw_asm_internal.h brw: Rework label tracking in assembler 2025-03-06 17:06:20 -08:00
brw_asm_tool.c brw: Fix size in assembler when compacting 2025-03-03 20:43:56 +00:00
brw_builder.cpp intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_builder.h brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_cfg.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_cfg.h brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_compile_bs.cpp brw: factor out base prog_data setting 2025-02-22 08:30:22 +00:00
brw_compile_cs.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_compile_fs.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_compile_gs.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_compile_mesh.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_compile_tcs.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_compile_tes.cpp brw: factor out base prog_data setting 2025-02-22 08:30:22 +00:00
brw_compile_vs.cpp brw: factor out base prog_data setting 2025-02-22 08:30:22 +00:00
brw_compiler.c intel/brw, lp: enable lower_pack_64_4x16 2025-02-26 20:43:39 +00:00
brw_compiler.h brw: store source_hash in prog_data 2025-02-22 08:30:22 +00:00
brw_debug_recompile.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_device_sha1_gen_c.py intel/compiler: drop unused ray-tracing fields from cache hash 2024-03-22 00:01:28 +00:00
brw_disasm.c intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_disasm.h intel/brw: Rename brw_inst to brw_eu_inst 2024-12-30 17:16:15 +00:00
brw_disasm_info.cpp intel/brw: Rename fs_inst to brw_inst 2025-01-31 00:57:21 +00:00
brw_disasm_info.h intel/brw: Rename fs_inst to brw_inst 2025-01-31 00:57:21 +00:00
brw_disasm_tool.c intel/brw: Remove Gfx8- code from disassembler 2024-02-28 05:45:38 +00:00
brw_eu.c brw: Add support for GOTO/JOIN in the assembler 2025-03-06 17:06:20 -08:00
brw_eu.h intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_eu_compact.c brw: Add support for GOTO/JOIN in the assembler 2025-03-06 17:06:20 -08:00
brw_eu_defines.h intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_eu_emit.c brw: Rename shared function enums for clarity 2025-02-27 08:49:24 +00:00
brw_eu_inst.h intel/brw: Add missing bits in 3-src SWSB encoding for Xe2+ 2025-01-03 21:19:26 +00:00
brw_eu_validate.c brw: Add support for GOTO/JOIN in the assembler 2025-03-06 17:06:20 -08:00
brw_from_nir.cpp intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_generator.cpp brw: extend the NOP+WHILE workaround 2025-02-26 22:23:16 +00:00
brw_generator.h brw: factor out base prog_data setting 2025-02-22 08:30:22 +00:00
brw_gram.y brw: Rework label tracking in assembler 2025-03-06 17:06:20 -08:00
brw_inst.cpp brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_inst.h brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_isa_info.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_kernel.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_kernel.h intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
brw_lex.l brw: Add support for GOTO/JOIN in the assembler 2025-03-06 17:06:20 -08:00
brw_lower.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_lower_dpas.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_lower_integer_multiplication.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_lower_logical_sends.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_lower_pack.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_lower_regioning.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_lower_scoreboard.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_lower_simd_width.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_lower_subgroup_ops.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_nir.c brw: avoid calling lower_indirect_derefs multiple times 2025-03-09 20:52:01 +00:00
brw_nir.h intel/compiler: Lower sample index into coord for MSRT messages 2025-03-07 23:06:14 +00:00
brw_nir_analyze_ubo_ranges.c intel/compiler: take reg_unit size into account with ubo ranges 2025-01-07 21:38:06 +00:00
brw_nir_lower_alpha_to_coverage.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_cooperative_matrix.c intel/brw/xe2+: Allow vec16 for cooperative matrix 2024-06-25 14:17:47 -07:00
brw_nir_lower_cs_intrinsics.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_fsign.py intel/brw: Use range analysis to optimize fsign 2024-05-14 01:28:21 +00:00
brw_nir_lower_intersection_shader.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_ray_queries.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_rt_intrinsics.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_sample_index_in_coord.c intel/compiler: Lower sample index into coord for MSRT messages 2025-03-07 23:06:14 +00:00
brw_nir_lower_shader_calls.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_lower_storage_image.c brw: add support for 64bit storage images load/store 2025-02-23 15:16:50 +00:00
brw_nir_lower_texel_address.c brw: add support for texel address lowering 2025-02-23 15:16:50 +00:00
brw_nir_opt_fsat.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_rt.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
brw_nir_rt.h brw: enable A64 pulling of push constants 2025-02-05 09:56:04 +00:00
brw_nir_rt_builder.h intel/compiler: Drop primitive leaf desc load code 2025-02-12 05:23:05 +00:00
brw_nir_trig_workarounds.py
brw_opt.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_opt_address_reg_load.cpp brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_opt_algebraic.cpp intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_opt_bank_conflicts.cpp intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_opt_cmod_propagation.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_opt_combine_constants.cpp brw: Use brw_inst::block in Combine Constants 2025-03-06 23:33:38 +00:00
brw_opt_copy_propagation.cpp brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_opt_cse.cpp brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_opt_dead_code_eliminate.cpp brw: Remove block parameter from brw_inst::remove() 2025-03-06 23:33:38 +00:00
brw_opt_register_coalesce.cpp brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_opt_saturate_propagation.cpp brw: Use brw_inst::block in Def analysis 2025-03-06 23:33:38 +00:00
brw_opt_txf_combiner.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_opt_virtual_grfs.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_packed_float.c
brw_prim.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_print.cpp brw/print: Don't let SHADER_OPCODE_FLOW affect indentation 2025-02-26 19:50:30 +00:00
brw_private.h intel/brw: Rename a few remaining functions to remove fs prefix 2025-02-11 09:13:28 +00:00
brw_reg.cpp brw: add instructions missing from is_control_flow() 2025-02-26 22:23:16 +00:00
brw_reg.h brw: add instructions missing from is_control_flow() 2025-02-26 22:23:16 +00:00
brw_reg_allocate.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
brw_reg_type.c intel/brw: Rename brw_reg_type_to_hw_type to brw_type_encode 2024-04-25 11:41:48 +00:00
brw_reg_type.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_rt.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_schedule_instructions.cpp intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_shader.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_shader.h brw: Remove bblock_t parameters from various passes 2025-03-06 23:33:38 +00:00
brw_simd_selection.cpp intel/brw/xe3+: Optimize CS/TASK/MESH compile time optimistically assuming SIMD32. 2025-01-29 23:39:32 +00:00
brw_spirv.c nir/peephole_select: add options struct 2025-02-20 21:59:16 +00:00
brw_thread_payload.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
brw_thread_payload.h intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_validate.cpp intel/compiler: Add support for MSAA typed load/store messages 2025-03-07 23:06:14 +00:00
brw_vue_map.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_workaround.cpp brw: Simplify brw_builder "insert before inst" constructor 2025-03-06 23:33:38 +00:00
intel_clc.c intel_clc: remove NIR output support 2025-02-01 07:54:37 +00:00
intel_gfx_ver_enum.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
intel_nir.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir.h brw: Align and combine constant-offset UBO loads in NIR 2025-01-10 22:44:09 +00:00
intel_nir_blockify_uniform_loads.c intel: switch to nir_metadata_divergence 2025-02-13 10:08:43 +00:00
intel_nir_clamp_image_1d_2d_array_sizes.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_clamp_per_vertex_loads.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_conversions.c intel/nir: Don't needlessly split u2f16 for nir_type_uint32 2024-07-11 02:37:05 -07:00
intel_nir_lower_non_uniform_barycentric_at_sample.c intel: switch to nir_metadata_divergence 2025-02-13 10:08:43 +00:00
intel_nir_lower_non_uniform_resource_intel.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_printf.c nir: drop printf_base_identifier 2025-02-05 20:33:15 +00:00
intel_nir_lower_shading_rate_output.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_sparse.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_texture.c intel/compiler: Pack texture LOD and offset to a single 32-bit value 2024-02-27 00:22:46 +00:00
intel_nir_opt_peephole_ffma.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_opt_peephole_imul32x16.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_tcs_workarounds.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
intel_shader_enums.h anv/brw: move INTEL_MSAA_* flag computation to the compiler 2025-03-05 17:20:12 +00:00
meson.build intel/compiler: Lower sample index into coord for MSRT messages 2025-03-07 23:06:14 +00:00
test_eu_compact.cpp intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
test_eu_validate.cpp intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
test_lower_scoreboard.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_opt_cmod_propagation.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_opt_combine_constants.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_opt_copy_propagation.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_opt_cse.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_opt_saturate_propagation.cpp brw: Embed at_end() inside brw_builder(brw_shader *) constructor 2025-03-06 23:33:38 +00:00
test_simd_selection.cpp intel/brw/xe3+: Optimize CS/TASK/MESH compile time optimistically assuming SIMD32. 2025-01-29 23:39:32 +00:00
test_vf_float_conversions.cpp