[PATCH] D70401: [RISCV] Implement ilp32e ABI
Sam Elliott via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 18 08:35:56 PST 2019
lenary created this revision.
lenary added reviewers: luismarques, shiva0217, asb.
Herald added subscribers: llvm-commits, apazos, sameer.abuasal, pzheng, s.egerton, Jim, benna, psnobl, jocewei, PkmX, rkruppe, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, MaskRay, jrtc27, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, hiraditya.
Herald added a project: LLVM.
ILP32E is a calling convention for 32-bit RISC-V which only uses the 16
registers from the RV32E base architecture. The calling convention has a
different stack alignment, and has fewer argument registers.
Importantly, the ABI chosen does not influence which registers should be
saved when an interrupt happens (this choice is made based on the
available architectural extensions).
This patch paves the way for adding full RV32E support.
This is based upon D59592 <https://reviews.llvm.org/D59592> by Daliang Xu (xudaliang.pku). I have fixed
the issue with interrupt CSRs, and excessive duplication of the GPR
list.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D70401
Files:
llvm/lib/Target/RISCV/RISCVCallingConv.td
llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
llvm/lib/Target/RISCV/RISCVFrameLowering.h
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
llvm/test/CodeGen/RISCV/callee-saved-fpr32s.ll
llvm/test/CodeGen/RISCV/callee-saved-fpr64s.ll
llvm/test/CodeGen/RISCV/callee-saved-gprs.ll
llvm/test/CodeGen/RISCV/calling-conv-ilp32e.ll
llvm/test/CodeGen/RISCV/calling-conv-rv32f-ilp32.ll
llvm/test/CodeGen/RISCV/stack-realignment-with-variable-sized-objects.ll
llvm/test/CodeGen/RISCV/stack-realignment.ll
llvm/test/CodeGen/RISCV/target-abi-valid.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70401.229858.patch
Type: text/x-patch
Size: 99493 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191118/6e0d5acc/attachment-0001.bin>
More information about the llvm-commits
mailing list