mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-09-04 03:34:46 +02:00
The ssa rewrite pass is based on the spirv-opt pass of the same name: https://github.com/KhronosGroup/SPIRV-Tools/blob/main/source/opt/ssa_rewrite_pass.cpp This commit brings the pass closer to that reference implementation. Notably this fixes applying the pass to unstructured graphs which seems to be broken otherwise Additionally the manual stack iteration of ReadVariable has been replaced with recusion which is much easier to reason about Undef handling has also been changed, before each block would define its own Undef instruction, now the pass will keep track and reuse compatible instructions add insert them to the first block