[all-commits] [llvm/llvm-project] a6dabe: [AMDGPU] Fix nondeterminism in SIFixSGPRCopies (#7...

Jay Foad via All-commits all-commits at lists.llvm.org
Tue Oct 31 04:47:55 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a6dabed3483c60469ff53d51622b22efc4b7b7d2
      https://github.com/llvm/llvm-project/commit/a6dabed3483c60469ff53d51622b22efc4b7b7d2
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
    M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
    A llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-nondeterminism.ll
    M llvm/test/CodeGen/AMDGPU/sdwa-peephole.ll
    M llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll

  Log Message:
  -----------
  [AMDGPU] Fix nondeterminism in SIFixSGPRCopies (#70644)

There are a couple of loops that iterate over V2SCopies. The iteration
order needs to be deterministic, otherwise we can call moveToVALU in
different orders, which causes temporary vregs to be allocated in
different orders, which can affect register allocation heuristics.




More information about the All-commits mailing list