[llvm] AMDGPU: Fix temporal divergence introduced by machine-sink and performance regression introduced by D155343 (PR #67456)
Nicolai Hähnle via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 4 12:45:33 PDT 2023
https://github.com/nhaehnle commented:
Thanks, this looks pretty close to landing IMO.
> blockPrologueInterferes in tryToSinkCopy seems to be required,
> For example see _amdgpu_ps_main2 from llvm/test/CodeGen/AMDGPU/sink-after-control-flow-postra.mir
> blockPrologueInterferes stops sink of
> renamable $sgpr0_sgpr1 = COPY $sgpr6_sgpr7
> past its use $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec
Does that make sense? Whatever PostRAMachineSink is trying to do, surely it shouldn't need target-specific block prologue logic to understand that a def can't be sunk past its use...
https://github.com/llvm/llvm-project/pull/67456
More information about the llvm-commits
mailing list