mesa/src
Christoph Pillmayer 09e1ba28e5 pan/bi: Fix coupling spill placement
In the following arrangement the old logic leads to the following:
                       |
                       v
            +----------+------------+
            |block5                 |
            |m815 = PHI m1034, m860 |<-----------+
            |343 = FMA.f32 ...      |            |
            +----------+------------+            |
                       |                         |
        +--------------+                         |
        |              |                         |
        v              v                         |
     +-----+        +-----+                      |
     |b6   |        |b7,8 |                      |
     |     |        |     |                      |
     +-----+        +--+--+                      |
        |    +---+     |    +---+                |
        +----|b9 +-----+----|b10+---+            |
        v    +---+          +---+   v            |
+-------+-------------+     +-------+---------+  |
|block12              |     |block11          |  |
|m882 = PHI m815, m860|     |m860 = MEMMOV 343+--+
+---------+-----------+     +-----------------+
          v

The spill of / into m860 (corresponding to 343) ends up in block11 when
insert_coupling_code(succ=block5, pred=block11) because of the memory
phi in block5. Later, in insert_coupling_code(block12, block9), we
reject inserting the spill after ca9c9957. As a result, m860 is
undefined along block5 -> block7,8 -> block9 -> block12.

When the spill position is chosen first, ctx->block is block5 so
choose_spill_position falsely returns the fallback position. The issue
can be fixed by explicitly passing the "current block".

Fixes: ca9c9957 ("pan: Avoid some redundant SSA spills")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40189>
2026-03-04 07:51:37 +00:00
..
amd amd/vpelib: Apply external CSC 2026-03-04 13:17:26 +08:00
android_stub android_stub: fix missing prototypes issues 2025-12-02 20:03:02 +00:00
asahi agx: use common code vote lowering 2026-02-25 17:29:29 +00:00
broadcom vc4: flush write jobs before BO replacement in DISCARD_WHOLE path 2026-03-03 09:32:47 +00:00
c11 c11/threads: fix build on c23 2025-11-10 07:01:50 +10:00
compiler glsl: relax precision matching on unused uniforms ES 2026-03-03 22:03:18 +00:00
drm-shim drm-shim: handle DRM_CAP_ADDFB2_MODIFIERS 2025-11-24 12:34:08 +00:00
egl os: Add support for GNU/HURD compilation and use of dri swrast/llvmpipe. 2026-02-17 08:24:02 +00:00
etnaviv etnaviv: Limit max line width to 1.0 on GPUs needing wide line emulation 2026-03-01 11:34:56 +00:00
freedreno ir3: Handle (some) convert_alu_types in backend 2026-03-03 12:13:04 -08:00
gallium glsl: relax precision matching on unused uniforms ES 2026-03-03 22:03:18 +00:00
gbm gbm: Make documentation for gbm_bo_map more explicit 2025-12-29 10:05:38 +00:00
getopt
gfxstream gfxstream: enable VK_EXT_primitives_generated_query 2026-02-23 17:41:30 +00:00
glx os: Add support for GNU/HURD compilation and use of dri swrast/llvmpipe. 2026-02-17 08:24:02 +00:00
gtest
imagination pvr: suppress VkDescriptorSetLayoutBindingFlagsCreateInfo ignored warn 2026-03-02 15:06:38 +00:00
imgui
intel intel/genxml: Update README notes on hardware version numbers 2026-03-03 17:03:15 +00:00
kosmickrisp kk: Fix debug printf specifier 2026-02-26 17:37:28 +00:00
loader util,loader: silence asprintf() unused result warnings 2026-02-07 10:07:22 +00:00
mesa st/glsl_to_nir: update state var locations earlier 2026-02-28 23:56:10 +00:00
microsoft dozen: Resolve Seg Fault in dzn_physical_device_create 2026-02-17 15:19:37 +00:00
nouveau nvk: Remove unused cmd.tls_space_needed 2026-02-25 22:42:07 +00:00
panfrost pan/bi: Fix coupling spill placement 2026-03-04 07:51:37 +00:00
poly panvk/csf: implement VK_EXT_primitives_generated_query primitive restart 2026-01-21 09:03:34 +00:00
tool pps/meson: minor refactor for pps_deps 2025-11-08 18:39:00 -08:00
util util/format: Add a util_format_get_depth_bits() helper 2026-02-26 11:15:28 +00:00
virtio venus/ci: Skip invalid SkQP test on ANV 2026-02-26 09:46:11 +01:00
vulkan vulkan/cmd_queue: Don't explicitly set struct members to NULL 2026-03-03 10:19:31 +00:00
x11 os: Add support for GNU/HURD compilation and use of dri swrast/llvmpipe. 2026-02-17 08:24:02 +00:00
.clang-format
meson.build gallium/dril: Don't use gbm if there is no gbm configured 2026-02-17 08:24:02 +00:00