mesa/src/panfrost/compiler
Eric R. Smith d482b6ca68 panfrost: fix typo in register allocation
The intention of the code was to allow PHI values to be propagated
if they were in registers (as opposed to in memory). As written though
values were never propagated. I think this typo was due to some
debug code that wasn't removed properly.

Fixes: 6c64ad934f ("panfrost: spill registers in SSA form")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Ashley Smith <ashley.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37092>
2025-09-03 16:19:29 -03:00
..
bifrost all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
test bi: Rewrite dead code elimination 2024-08-20 10:03:30 +02:00
valhall pan/bi: Prioritize consts moved to the FAU 2025-08-27 10:48:21 +00:00
bi_builder.h.py build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
bi_helper_invocations.c panfrost: Add BI_OPCODE_WMASK to bi_instr_uses_helpers 2025-02-28 08:55:32 +00:00
bi_iterator_schedule.c pan/bi: schedule simple iterators to avoid extra move 2025-08-07 15:09:56 +00:00
bi_layout.c
bi_liveness.c panfrost: spill registers in SSA form 2025-07-07 19:49:37 +00:00
bi_lower_divergent_indirects.c all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
bi_lower_swizzle.c panfrost/va: valhall-specific swizzle lowering 2025-04-10 10:15:46 -07:00
bi_opcodes.c.py pan/bi: ignore ftz mode when scheduling int instructions 2025-04-10 16:21:09 +00:00
bi_opcodes.h.py pan/bi: ignore ftz mode when scheduling int instructions 2025-04-10 16:21:09 +00:00
bi_opt_constant_fold.c panfrost: fix shift overflow in bi_fold_constant 2024-01-26 09:40:48 +00:00
bi_opt_control_flow.c pan/bi: add pass to simplify control flow 2025-08-07 15:09:56 +00:00
bi_opt_copy_prop.c panfrost: use an accessor function to read from bi_opcode_props 2025-02-20 23:33:00 +00:00
bi_opt_cse.c panfrost: use an accessor function to read from bi_opcode_props 2025-02-20 23:33:00 +00:00
bi_opt_dce.c panfrost: use an accessor function to read from bi_opcode_props 2025-02-20 23:33:00 +00:00
bi_opt_dual_tex.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
bi_opt_mod_props.c pan/bi: Reintroduce bi_fuse_small_int_to_f32 on v11+ 2025-09-03 17:32:02 +00:00
bi_opt_push_ubo.c pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
bi_packer.c.py build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
bi_pressure_schedule.c pan/bi: rework memory barriers 2025-06-13 12:05:02 +02:00
bi_print.c panfrost: Reformat using the new style 2023-05-29 21:06:12 +00:00
bi_print_common.c
bi_print_common.h
bi_printer.c.py build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
bi_quirks.h pan/kmod: Expose the raw GPU ID through pan_kmod_dev_props 2025-07-09 08:40:12 +00:00
bi_ra.c panfrost: fix typo in register allocation 2025-09-03 16:19:29 -03:00
bi_ra_ssa.c panfrost: spill registers in SSA form 2025-07-07 19:49:37 +00:00
bi_spill_ssa.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
bi_swizzles.c.py panfrost: use bifrost instruction table for bi_lower_swizzle 2025-04-10 10:15:46 -07:00
bi_swizzles.h panfrost: use bifrost instruction table for bi_lower_swizzle 2025-04-10 10:15:46 -07:00
bi_test.h pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
bi_validate.c panvk: fix typo in printf in bi_validate 2025-06-20 08:29:54 +00:00
bifrost.h panfrost: spill registers in SSA form 2025-07-07 19:49:37 +00:00
bifrost_compile.c pan/bi: Ensure to merge adjacent ifs after bifrost_nir_lower_shader_output 2025-09-01 09:42:03 +00:00
bifrost_compile.h panfrost: Split texture lowering passes 2025-08-20 12:11:43 +00:00
bifrost_isa.py panfrost: Update bifrost_isa.py to support saturate for valhall 2025-05-22 14:39:32 +00:00
bifrost_nir.h pan/bi: Stop exposing bifrost_nir_lower_load_output 2025-08-20 12:11:43 +00:00
bifrost_nir_algebraic.py pan/bi: Handle needless conversions in nir_lower_bool_to_bitsize 2025-08-11 11:38:57 +00:00
bir.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
cmdline.c pan/bi: use os_read_file-helper 2025-08-21 08:45:33 +00:00
compiler.h pan/bi: Move some constants into FAU entries 2025-08-27 10:48:20 +00:00
gen_disasm.py bi: Move bi_disasm definitions to their own header 2024-06-17 07:31:50 +00:00
IR_pseudo.xml pan/bi: rework memory barriers 2025-06-13 12:05:02 +02:00
meson.build pan/bi: schedule simple iterators to avoid extra move 2025-08-07 15:09:56 +00:00
nodearray.h
Notes.txt
README.md

Bifrost compiler

Register file

Defined partially in software, partially in hardware.

Blend shaders

R0 - R3: input (color #0) R4 - R7: input (color #1) R8 - R15: general purpose R48: return address

Fragment

Anything live during BLEND must respect blend shader registers.

R0 - R3: preloaded (message #0) R4 - R7: preloaded (message #1) R57 - R63: preloaded (various)

R0 - R15: general purpose (full threads) R48 - R63: general purpose (full threads)

R32 - R47: general purpose (half threads, or v6)