[all-commits] [llvm/llvm-project] 88073d: [PowerPC] Create a FixedStack object for CR save i...

Sean Fertile via All-commits all-commits at lists.llvm.org
Fri Feb 7 10:34:13 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 88073d40c7d84d59cffe7703e2a85694936fff68
      https://github.com/llvm/llvm-project/commit/88073d40c7d84d59cffe7703e2a85694936fff68
  Author: Sean Fertile <sd.fertile at gmail.com>
  Date:   2020-02-07 (Fri, 07 Feb 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
    A llvm/test/CodeGen/PowerPC/ppc64-alloca-crspill.ll
    A llvm/test/CodeGen/PowerPC/ppc64-crsave.mir

  Log Message:
  -----------
  [PowerPC] Create a FixedStack object for CR save in linkage area.

hasReservedSpillSlot returns a dummy frame index of '0' on PPC64 for the
non-volatile condition registers, which leads to the CalleSavedInfo
either referencing an unrelated stack object, or an invalid object if
there are no stack objects. The latter case causes the mir-printer to
crash due to assertions that checks if the frame index referenced by a
CalleeSavedInfo is valid.

To fix the problem create an immutable FixedStack object at the correct offset
in the linkage area of the previous stack frame (ie SP + positive offset).

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




More information about the All-commits mailing list