[all-commits] [llvm/llvm-project] c45ec5: [SystemZ] [z/OS] Use assignCalleeSavedSpillSlots()...

Neumann Hon via All-commits all-commits at lists.llvm.org
Wed Jul 6 19:22:46 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c45ec53e7b852c1d874b6ffac11ce71ca21415dd
      https://github.com/llvm/llvm-project/commit/c45ec53e7b852c1d874b6ffac11ce71ca21415dd
  Author: Neumann Hon <h.neukc at gmail.com>
  Date:   2022-07-06 (Wed, 06 Jul 2022)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZCallingConv.td
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp

  Log Message:
  -----------
  [SystemZ] [z/OS] Use assignCalleeSavedSpillSlots() to mark handle special registers in CSR list instead of determineCalleeSave

This PR moves the handling of special registers that need to be saved/restored in the prolog/epilog respectively from determineCalleeSaves to assignCalleeSavedSpillSlots. The documentation of the parent function of assignCalleeSavedSpillSlots explicitly allows the modification of the CSI hence adding the special registers (the stack pointer register, the return address register, and the entry point register) to the CSI list at that stage should be permissible.

This cleans up the code a bit and makes it so that we do not have to place registers that are not actually considered CSRs by the spec in the CSR list, which is something of a hack.

Reviewed By: uweigand

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




More information about the All-commits mailing list