[all-commits] [llvm/llvm-project] 2bd72a: AMDGPU: Skip other terminators before inserting s_...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Fri Jul 24 13:52:22 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2bd72abef0f24d9f7da13af3a43a25409159a87e
      https://github.com/llvm/llvm-project/commit/2bd72abef0f24d9f7da13af3a43a25409159a87e
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2020-07-24 (Fri, 24 Jul 2020)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
    A llvm/test/CodeGen/AMDGPU/lower-control-flow-other-terminators.mir
    R llvm/test/CodeGen/AMDGPU/si-if-lower-user-terminators.mir

  Log Message:
  -----------
  AMDGPU: Skip other terminators before inserting s_cbranch_exec[n]z

PHIElimination/createPHISourceCopy inserts non-branch terminators
after the control flow pseudo if a successor phi reads a register
defined by the control flow pseudo. If this happens, we need to split
the expansion of the control flow pseudo to ensure all the branches
are after all of the other mask management instructions.

GlobalISel hit this in testscases that happened to be tail
duplicated. The original testcase still does not work, since the same
problem appears to be present in a later pass.




More information about the All-commits mailing list