mesa/src/broadcom/compiler
Jose Maria Casanova Crespo 8f06961bf5 broadcom/compiler: Eliminate redundant setnnmode instructions
This new VIR optimization pass tracks the current NN signedness
mode per block and removes duplicate setnnmode instructions.

When consecutive dot products use the same signedness mode, the backend
emits one setnnmode per dot product. This pass removes the redundant
ones, keeping only the first.

Assisted-by: Claude Opus 4.6
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41255>
2026-04-29 13:21:08 +00:00
..
meson.build broadcom/compiler: Eliminate redundant setnnmode instructions 2026-04-29 13:21:08 +00:00
nir_to_vir.c broadcom/compiler: hardware-accelerated 4x8-bit dot products on V3D 7.1+ 2026-04-29 13:21:08 +00:00
qpu_schedule.c broadcom/compiler: Add v8dot and setnnmode scheduler dependencies. 2026-04-29 13:21:08 +00:00
qpu_validate.c broadcom/compiler: MULTOP in branch delay slots doesn't generate RTOP hazard 2026-04-14 16:34:54 +00:00
v3d_compiler.h broadcom/compiler: Eliminate redundant setnnmode instructions 2026-04-29 13:21:08 +00:00
v3d_nir_lower_algebraic.py broadcom/compiler: generate mali opcodes for clamping on Pi5 2024-10-03 09:02:08 +00:00
v3d_nir_lower_blend.c nir/lower_blend: Move the format to nir_lower_blend_rt 2026-01-19 21:33:14 +00:00
v3d_nir_lower_image_load_store.c broadcom/compiler: use f2f32 when lowering image load 2026-02-06 06:12:36 +00:00
v3d_nir_lower_io.c nir/validate: expand IO intrinsic validation with nir_io_semantics 2025-11-02 02:21:46 +00:00
v3d_nir_lower_line_smooth.c treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
v3d_nir_lower_load_output.c v3d/compiler: remove requirement for format information for fbfetch 2025-05-08 06:25:22 +00:00
v3d_nir_lower_load_store_bitsize.c broadcom/compiler: ensure offset source exists 2024-12-16 10:56:38 +00:00
v3d_nir_lower_logic_ops.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
v3d_nir_lower_scratch.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
v3d_nir_lower_txf_ms.c nir: Take a nir_def * in nir_tex_instr_add_src() 2023-08-18 01:00:14 +00:00
v3d_packing.c broadcom/compiler: add v3d_pack_unnormalized_coordinates helper 2023-10-31 13:00:34 +01:00
v3d_tex.c broadcom/compiler: use skip_helpers with textures, UBOs and SSBOs 2026-01-08 12:59:44 +00:00
vir.c broadcom/compiler: Eliminate redundant setnnmode instructions 2026-04-29 13:21:08 +00:00
vir_dump.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
vir_live_variables.c broadcom/compiler: update payload registers handling when computing live intervals 2023-10-13 22:37:42 +00:00
vir_opt_alu.c broadcom/compiler: optimize alu(shr(x, 16).l) to alu(x.h) 2026-02-05 11:29:42 +00:00
vir_opt_constant_alu.c
vir_opt_copy_propagate.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
vir_opt_dead_code.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
vir_opt_redundant_flags.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
vir_opt_redundant_setnnmode.c broadcom/compiler: Eliminate redundant setnnmode instructions 2026-04-29 13:21:08 +00:00
vir_opt_small_immediates.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00
vir_register_allocate.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
vir_to_qpu.c broadcom: use Mesa logging functions 2026-04-06 07:40:55 +00:00