[all-commits] [llvm/llvm-project] d45a24: [AMDGPU] Don't remove VGPR to AGPR dead spills fro...

bcahoon via All-commits all-commits at lists.llvm.org
Thu Dec 23 09:12:41 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d45a2479989985937b016a4d66ffa1ed6c885613
  Author: Brendon Cahoon <brendon.cahoon at amd.com>
  Date:   2021-12-23 (Thu, 23 Dec 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
    A llvm/test/CodeGen/AMDGPU/same-slot-agpr-sgpr.mir

  Log Message:
  [AMDGPU] Don't remove VGPR to AGPR dead spills from frame info

Removing dead frame indices for VGPR to AGPR spills is incorrect
when the frame index is shared by multiple objects, which may
occur due to stack slot coloring. The problem is that subsequent
code that processes the other object will assert because the stack
frame index is marked dead.

Removing dead frame indices is needed prior to stack slot
coloring, which is what happens with SGPR to VGPR spills. These
spills are lowered prior to stack slot coloring, but the VGPR
to AGPR spills are processed afterwards during the Prolog/Epilog
Inserter pass. This patch marks the VGPR to AGPR spill slot as
dead if the slot is not used by another object.

Differential Revision: https://reviews.llvm.org/D115996

More information about the All-commits mailing list