[all-commits] [llvm/llvm-project] 0f45ea: [RISCV] Add a scavenge spill slot when use ADDI to...
luxufan via All-commits
all-commits at lists.llvm.org
Sun Jul 3 06:04:04 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0f45eaf0da1f28a744f7dd24536e6d1a25b7d6cf
https://github.com/llvm/llvm-project/commit/0f45eaf0da1f28a744f7dd24536e6d1a25b7d6cf
Author: luxufan <luxufan at iscas.ac.cn>
Date: 2022-07-03 (Sun, 03 Jul 2022)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.h
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
A llvm/test/CodeGen/RISCV/rvv/addi-rvv-stack-object.mir
M llvm/test/CodeGen/RISCV/rvv/rvv-stack-align.mir
M llvm/test/CodeGen/RISCV/rvv/scalar-stack-align.ll
Log Message:
-----------
[RISCV] Add a scavenge spill slot when use ADDI to compute scalable stack offset
Computing scalable offset needs up to two scrach registers. We add
scavenge spill slots according to the result of `RISCV::isRVVSpill`
and `RVVStackSize`. Since ADDI is not included in `RISCV::isRVVSpill`,
PEI doesn't add scavenge spill slots for scrach registers when using
ADDI to get scalable stack offsets.
The ADDI instruction has a destination register which can be used as
a scrach register. So one scavenge spil slot is sufficient for
computing scalable stack offsets.
Differential Revision: https://reviews.llvm.org/D128188
More information about the All-commits
mailing list