mesa/src/intel/compiler/jay
Alyssa Rosenzweig db95df3da4
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
jay/opt_propagate: propagate undefs
allows deleting piles of moves & pressure.

simd16 results:

   Totals:
   Instrs: 2759547 -> 2753358 (-0.22%); split: -0.29%, +0.06%
   CodeSize: 41141280 -> 41071072 (-0.17%); split: -0.23%, +0.06%

   Totals from 332 (12.54% of 2647) affected shaders:
   Instrs: 648080 -> 641891 (-0.95%); split: -1.23%, +0.28%
   CodeSize: 9782272 -> 9712064 (-0.72%); split: -0.97%, +0.25%

simd32 is a loss because of RA being stupid. again, this is obviously the right
thing to do so we're doing it. stats are just a hint.

   Totals:
   Instrs: 4683556 -> 4689193 (+0.12%); split: -0.25%, +0.37%
   CodeSize: 70072256 -> 70171920 (+0.14%); split: -0.23%, +0.38%
   Number of spill instructions: 50320 -> 50316 (-0.01%)
   Number of fill instructions: 51530 -> 51526 (-0.01%)

   Totals from 351 (13.26% of 2647) affected shaders:
   Instrs: 1349954 -> 1355591 (+0.42%); split: -0.86%, +1.28%
   CodeSize: 20484224 -> 20583888 (+0.49%); split: -0.80%, +1.29%
   Number of spill instructions: 21762 -> 21758 (-0.02%)
   Number of fill instructions: 26328 -> 26324 (-0.02%)

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41510>
2026-05-12 22:46:36 +00:00
..
test jay/opt_propagate: fix NOT propagation 2026-05-12 22:46:36 +00:00
.clang-format
jay.h
jay_assign_accumulators.c jay: assign accumulators post-RA 2026-05-06 23:25:25 +00:00
jay_assign_flags.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
jay_builder.h jay/opt_propagate: propagate undefs 2026-05-12 22:46:36 +00:00
jay_builder_opcodes.h.py
jay_extra_info.h.py
jay_from_nir.c jay/lower_scoreboard: refactor 2026-05-12 22:46:33 +00:00
jay_insert_fp_mode.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_ir.h jay/opt_propagate: fix NOT propagation 2026-05-12 22:46:36 +00:00
jay_liveness.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_lower_post_ra.c jay: have proper UNDEF 2026-05-12 22:46:32 +00:00
jay_lower_pre_ra.c jay: fix bfn with 0xffff constant 2026-05-12 22:46:30 +00:00
jay_lower_scoreboard.c jay/lower_scoreboard: use sbid syncs to elide regdist deps 2026-05-12 22:46:35 +00:00
jay_lower_spill.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_nir.c iris: Implement force_dual_color_blend_by_location via NIR 2026-05-07 08:29:40 +00:00
jay_nir_algebraic.py
jay_opcodes.py jay: have proper UNDEF 2026-05-12 22:46:32 +00:00
jay_opcodes_gen.py
jay_opt_dead_code.c jay/opt_dead_code: handle predication 2026-04-20 22:32:02 +00:00
jay_opt_predicate.c jay: predicate NoMask instructions in uniform IF's 2026-04-28 23:13:50 +00:00
jay_opt_propagate.c jay/opt_propagate: propagate undefs 2026-05-12 22:46:36 +00:00
jay_print.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_private.h jay/lower_scoreboard: refactor 2026-05-12 22:46:33 +00:00
jay_prog_data.c brw: Stop tracking inline parameter usage in prog_key/prog_data 2026-04-30 16:39:22 +00:00
jay_register_allocate.c jay/register_allocate: tweak roundrobin heuristic 2026-05-12 22:46:35 +00:00
jay_repair_ssa.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_simd_width.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
jay_spill.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_to_binary.c jay: fix bfn with 0xffff constant 2026-05-12 22:46:30 +00:00
jay_validate.c jay/lower_scoreboard: be the sole emitter of SYNC 2026-05-06 23:25:26 +00:00
jay_validate_ra.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
meson.build jay: assign accumulators post-RA 2026-05-06 23:25:25 +00:00
README.md jay: clarify development model 2026-05-12 22:46:32 +00:00
register-file.md

Xe2 compiler experiments.

Work-in-progress, not ready for users/benchmarks.


Jay is written by humans, not Large Language Models, due to our focus on delivering high quality software and nurturing healthy software teams. For information on the issues, see the notes of veteran Mesa developers like Erik Faye-Lund. Please respect our wishes and do not send Jay patches that are not human authored. Thank you!