Skip to content

pan/mdg: Test for SSA before chasing addresses

Alyssa Rosenzweig requested to merge alyssa/mesa:chase into master

It's possible an SSA value depends on a register; in this case, chasing the source would result in a crash as the chase helper in NIR asserts is_ssa. Instead we should check a priori that all the argments are in fact SSA, bailing otherwise.

In the piglit shader exhibiting this bug (by looping over the index), bailing on the ishl instruction is -necessary-. This is not merely us being cowardly to avoid seeing through the registers; indeed, if we wrote away the ishl instruction, the shift itself would have to be stored in a load/store register (r26/r27) which would preclude reading it in the loop, creating a register allocation failure later in the compile. So this is the correct solution due to the restricted semantics.

Closes #3286

Signed-off-by: Alyssa Rosenzweig alyssa.rosenzweig@collabora.com Reported-by: Icecream95 ixn@keemail.me Fixes: f5401cb8 ("pan/midgard: Add address analysis framework")

Merge request reports