llvm / llvm/llvm-project

[AMDGPU] Live-range split copies placed before the Flow block's exec restore run under the wrong exec mask: lanes from the else arm read never-written AGPRs

Open
#222,368 4 comments 0 reactions 1 assignee Claimed by @lucas-rami View on GitHub
backend:AMDGPU
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

The reproducers for this are sadly massive and I couldn't minimize them too much specially since they come from XLA. I tried using robots and llvm-reduce and friends but didn't have much success.

But in essence some writes to AGPRs got lifted to before the exec restore instruction causing the following code to read garbage values in those AGPRs. In the original reproducer those values are pointers which leads to a crash.

For more details sadly the robot is more capable than I so this Claude slop thing is the best I can do.

https://github.com/gbaraldi/reactant3246-amdgpu-ra-repro/blob/main/ANALYSIS.md

They are in this repo with scripts to actually do them
https://github.com/gbaraldi/reactant3246-amdgpu-ra-repro

Found in
https://github.com/EnzymeAD/Reactant.jl/issues/3246

Opening here for visibility @arsenm

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.