mesa/src/intel/compiler
Caio Oliveira 4fda724fd4
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
brw: Avoid invalid access when compacting out-of-bounds JIP/UIP
Usually JIP will be valid, but as part of other changes, it will be
possible to have a shader that have multiple EOT messages and end with
and ENDIF instruction.  Its JIP will point after the program ends.
This is fine but was tripping up the compaction code.

Change compaction to not read its internal structures beyond the last
instruction.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36822>
2025-08-20 00:54:41 +00:00
..
elk elk/algebraic: Protect SHUFFLE from OOB indices 2025-08-19 09:15:19 +00:00
tests intel/compiler tests: fix path-to-string conversion 2025-06-23 08:26:29 +00:00
brw_analysis.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_analysis.h brw: Track the largest VGRF size in liveness analysis 2025-04-11 20:34:51 +00:00
brw_analysis_def.cpp brw: consider LOAD_PAYLOAD fully defined 2025-07-30 07:57:19 +00:00
brw_analysis_liveness.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_analysis_performance.cpp brw: Rename is_send_from_grf to is_send, replace other is_send() helper 2025-08-08 22:12:05 +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 intel/compiler tests: fix variable type for getopt_long() return value 2025-06-23 08:26:29 +00:00
brw_builder.cpp brw: Add brw_builder::uniform() 2025-04-04 23:07:21 +00:00
brw_builder.h brw: Define order for fixes in 3-src operand fix 2025-08-19 13:54:43 +00:00
brw_cfg.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_cfg.h intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_compile_bs.cpp all: rename gl_shader_stage_name to mesa_shader_stage_name 2025-08-06 10:28:41 +08:00
brw_compile_cs.cpp all: rename gl_shader_stage_is_compute to mesa_shader_stage_is_compute 2025-08-06 10:28:41 +08:00
brw_compile_fs.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_compile_gs.cpp brw: compute consistent clip/cull distance masks with VUE 2025-08-13 06:24:44 +00:00
brw_compile_mesh.cpp brw: compute consistent clip/cull distance masks with VUE 2025-08-13 06:24:44 +00:00
brw_compile_tcs.cpp brw: move URB channel mask shifting to the lowering pass 2025-08-13 12:01:49 +00:00
brw_compile_tes.cpp brw: compute consistent clip/cull distance masks with VUE 2025-08-13 06:24:44 +00:00
brw_compile_vs.cpp brw: compute consistent clip/cull distance masks with VUE 2025-08-13 06:24:44 +00:00
brw_compiler.c all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
brw_compiler.h brw: reorder reloc enums to leave embedded samplers at the end 2025-08-13 12:01:49 +00:00
brw_debug_recompile.c all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
brw_device_sha1_gen_c.py
brw_disasm.c intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_disasm.h intel/brw: support for dumping shader line numbers 2025-04-08 19:39:53 +00:00
brw_disasm_info.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_disasm_info.h intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_disasm_tool.c
brw_eu.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_eu.h build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_eu_compact.c brw: Avoid invalid access when compacting out-of-bounds JIP/UIP 2025-08-20 00:54:41 +00:00
brw_eu_defines.h brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_eu_emit.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_eu_inst.h brw: Add BRW_TYPE_BF for bfloat16 2025-03-25 05:23:37 +00:00
brw_eu_validate.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_from_nir.cpp brw: move URB channel mask shifting to the lowering pass 2025-08-13 12:01:49 +00:00
brw_generator.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_generator.h all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
brw_gram.y brw: Add EU assembler support for bfloat16 2025-03-25 05:23:37 +00:00
brw_inst.cpp brw: Make sure copied instruction don't copy the list pointers 2025-08-19 13:54:43 +00:00
brw_inst.h brw: Rename is_send_from_grf to is_send, replace other is_send() helper 2025-08-08 22:12:05 +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 intel: Update all NIR_PASS_V to NIR_PASS 2025-07-14 19:25:52 +00:00
brw_kernel.h intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
brw_lex.l brw: Add EU assembler support for bfloat16 2025-03-25 05:23:37 +00:00
brw_list.h intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_load_reg.cpp brw: Add and use brw_reg_is_arf to test for a specific ARF 2025-07-24 23:08:07 +00:00
brw_lower.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +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: Only access valid sources in lower_btd_logical_send() 2025-08-19 13:54:43 +00:00
brw_lower_pack.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_lower_regioning.cpp brw: Rename is_send_from_grf to is_send, replace other is_send() helper 2025-08-08 22:12:05 +00:00
brw_lower_scoreboard.cpp brw: Rename is_send_from_grf to is_send, replace other is_send() helper 2025-08-08 22:12:05 +00:00
brw_lower_simd_width.cpp brw: Use a builder to track position in lower_simd 2025-07-19 17:49:48 +00:00
brw_lower_subgroup_ops.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_nir.c all: rename gl_shader_stage_can_set_fragment_shading_rate 2025-08-06 10:28:41 +08:00
brw_nir.h all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08: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 nir: rename nir_lower_io_to_temporaries -> nir_lower_io_vars_to_temporaries 2025-06-26 18:20:54 +00:00
brw_nir_lower_cooperative_matrix.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_nir_lower_cs_intrinsics.c all: rename gl_shader_stage_uses_workgroup to mesa_shader_stage_uses_workgroup 2025-08-06 10:28:41 +08:00
brw_nir_lower_fs_barycentrics.c treewide: simplify nir_def_rewrite_uses_after 2025-08-01 15:34:24 +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_immediate_offsets.c treewide: use nir_def_as_* 2025-08-01 15:34:24 +00:00
brw_nir_lower_intersection_shader.c intel: Update all NIR_PASS_V to NIR_PASS 2025-07-14 19:25:52 +00:00
brw_nir_lower_ray_queries.c intel/compiler: Fix ray geometry index 2025-08-19 09:32:55 +00:00
brw_nir_lower_rt_intrinsics.c intel/compiler: Fix ray geometry index 2025-08-19 09:32:55 +00:00
brw_nir_lower_rt_intrinsics_pre_trace.c brw: add pre ray trace intrinsic moves 2025-05-06 13:34: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 build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_nir_lower_storage_image.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_nir_lower_texel_address.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_nir_lower_texture.c brw: move texture offset packing to NIR 2025-03-29 02:15:18 +00:00
brw_nir_opt_fsat.c treewide: use nir_def_block 2025-08-01 15:34:24 +00:00
brw_nir_rt.c all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
brw_nir_rt.h intel: Update all NIR_PASS_V to NIR_PASS 2025-07-14 19:25:52 +00:00
brw_nir_rt_builder.h intel/rt: Update BVH instance leaf load for Xe3+ 2025-04-21 20:10:45 +00:00
brw_nir_trig_workarounds.py
brw_nir_wa_18019110168.c treewide: use nir_def_as_* 2025-08-01 15:34:24 +00:00
brw_opt.cpp brw: If the instruction is already a SEND, no need to resize sources 2025-08-19 13:54:43 +00:00
brw_opt_address_reg_load.cpp brw: Remove extra iteration on instructions from brw_opt_address_reg_load 2025-07-31 19:45:16 +00:00
brw_opt_algebraic.cpp brw/algebraic: Protect SHUFFLE from OOB indices 2025-08-19 09:15:19 +00:00
brw_opt_bank_conflicts.cpp util: crib SWAP macro from freedreno 2025-07-21 11:42:18 +00:00
brw_opt_cmod_propagation.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_opt_combine_constants.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_opt_copy_propagation.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_opt_cse.cpp brw: Stop using is_send_from_grf() in CSE pass 2025-08-08 22:12:05 +00:00
brw_opt_dead_code_eliminate.cpp intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_opt_register_coalesce.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_opt_saturate_propagation.cpp brw: Clean up saturate propagation after non-defs version removal 2025-04-09 19:06:48 +00:00
brw_opt_txf_combiner.cpp brw: Add more specific brw_builder helpers 2025-07-19 17:49:47 +00:00
brw_opt_virtual_grfs.cpp brw: Don't assert about MAX_VGRF_SIZE in brw_opt_split_virtual_grfs() 2025-04-11 20:34:51 +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 intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_private.h intel/debug: shader dump filter 2025-05-23 19:57:02 +00:00
brw_reg.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_reg.h build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_reg_allocate.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
brw_reg_type.c brw: Add BRW_TYPE_BF for bfloat16 2025-03-25 05:23:37 +00:00
brw_reg_type.h brw: Add BRW_TYPE_BF for bfloat16 2025-03-25 05:23:37 +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: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
brw_shader.cpp brw: move URB channel mask shifting to the lowering pass 2025-08-13 12:01:49 +00:00
brw_shader.h all: rename gl_shader_stage_uses_workgroup to mesa_shader_stage_uses_workgroup 2025-08-06 10:28:41 +08:00
brw_simd_selection.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
brw_spirv.c nir: add nir_vectorize_cb callback parameter to nir_lower_phis_to_scalar() 2025-07-08 15:33:59 +00:00
brw_thread_payload.cpp all: rename gl_shader_stage_is_compute to mesa_shader_stage_is_compute 2025-08-06 10:28:41 +08:00
brw_thread_payload.h intel/brw: Rename fs_visitor to brw_shader 2025-02-11 09:13:28 +00:00
brw_validate.cpp brw: Validate that send payloads can't be imms or have source mods 2025-08-08 22:12:11 +00:00
brw_vue_map.c all: rename gl_shader_stage_name to mesa_shader_stage_name 2025-08-06 10:28:41 +08:00
brw_workaround.cpp brw: Rename is_send_from_grf to is_send, replace other is_send() helper 2025-08-08 22:12:05 +00:00
intel_gfx_ver_enum.h build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
intel_nir.c intel/compiler: Use nir_split_conversions() 2025-04-07 17:45:21 -05:00
intel_nir.h anv: lower input vertices for TCS unconditionally 2025-05-08 06:48:34 +00:00
intel_nir_blockify_uniform_loads.c treewide: simplify nir_def_rewrite_uses_after 2025-08-01 15:34:24 +00:00
intel_nir_clamp_image_1d_2d_array_sizes.c treewide: simplify nir_def_rewrite_uses_after 2025-08-01 15:34:24 +00:00
intel_nir_clamp_per_vertex_loads.c treewide: use nir_def_as_* 2025-08-01 15:34:24 +00:00
intel_nir_lower_non_uniform_barycentric_at_sample.c treewide: use nir_def_as_* 2025-08-01 15:34:24 +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: simplify nir_def_rewrite_uses_after 2025-08-01 15:34:24 +00:00
intel_nir_lower_sparse.c treewide: simplify nir_def_rewrite_uses_after 2025-08-01 15:34:24 +00:00
intel_nir_opt_peephole_ffma.c treewide: use nir_def_as_* 2025-08-01 15:34:24 +00: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 brw: handle wa_18019110168 with independent shader compilation 2025-06-28 05:55:35 +00:00
meson.build brw: replace lower_fs_msaa with nir_inline_sysval 2025-08-03 21:27:47 +00:00
test_eu_compact.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
test_eu_validate.cpp build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
test_helpers.cpp brw: Simplify the test code for brw passes 2025-03-13 17:43:17 +00:00
test_helpers.h all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
test_insert_load_reg.cpp brw: Add passes to generate and lower load_reg 2025-04-04 06:45:02 +00:00
test_lower_scoreboard.cpp brw: Enumerate SHADER_OPCODE_SEND sources and standardize how many 2025-08-08 22:12:08 +00:00
test_opt_algebraic.cpp brw/algebraic: Don't optimize float SEL.CMOD to MOV 2025-04-15 23:59:31 +00:00
test_opt_cmod_propagation.cpp brw/cmod: Don't propagate from CMP to possible Inf + (-Inf) 2025-04-28 19:44:23 +00:00
test_opt_combine_constants.cpp brw: Add brw_builder::uniform() 2025-04-04 23:07:21 +00:00
test_opt_copy_propagation.cpp brw: Simplify the test code for brw passes 2025-03-13 17:43:17 +00:00
test_opt_cse.cpp brw: Simplify the test code for brw passes 2025-03-13 17:43:17 +00:00
test_opt_register_coalesce.cpp brw: don't generate invalid instructions 2025-06-04 06:08:26 +00:00
test_opt_saturate_propagation.cpp brw/sat: Eliminate non-defs saturate propagation 2025-04-04 06:45:02 +00:00
test_simd_selection.cpp intel: Switch uint64_t intel_debug to a bitset 2025-04-22 23:09:26 +00:00
test_vf_float_conversions.cpp