[all-commits] [llvm/llvm-project] 5f94f3: [RISCV] Refine getMaxPushPopReg like getLibCallID....
Jim Lin via All-commits
all-commits at lists.llvm.org
Mon Aug 7 00:16:57 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5f94f3b7eac849a172f8029d7992f606db73724b
https://github.com/llvm/llvm-project/commit/5f94f3b7eac849a172f8029d7992f606db73724b
Author: Jim Lin <jim at andestech.com>
Date: 2023-08-07 (Mon, 07 Aug 2023)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
Log Message:
-----------
[RISCV] Refine getMaxPushPopReg like getLibCallID. NFC.
If save/restore libcall or Zcmp push/pop are enabled, callee-saved registers including ra would be
assigned a negative frame index (-1 for ra, -2 for s0, ..., -13 for s11) by RISCVRegisterInfo::hasReservedSpillSlot.
getLibCallID would find a callee-saved register that has max register id and with assigned negative frame index.
And use this max register to get which save/restore libcall should be selected.
In getMaxPushPopReg (for Zcmp push/pop, similar getLibCallID), it uses extra register class (PGPR) to
check the saved register is in ra, s0-s11 instead of checking the frame index is negative.
This patch just changes the checking for the saved register from `is contained in PGPR` to `has a negative frame index`.
Reviewed By: fakepaper56
Differential Revision: https://reviews.llvm.org/D156393
More information about the All-commits
mailing list