[all-commits] [llvm/llvm-project] 54492a: [AArch64][SVE] Don't support fixedStack for SVE ob...
sdesmalen-arm via All-commits
all-commits at lists.llvm.org
Tue Jul 28 07:48:17 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 54492a5843a34684ce21ae201dd8ca3e509288fd
https://github.com/llvm/llvm-project/commit/54492a5843a34684ce21ae201dd8ca3e509288fd
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2020-07-28 (Tue, 28 Jul 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/test/CodeGen/AArch64/framelayout-sve.mir
Log Message:
-----------
[AArch64][SVE] Don't support fixedStack for SVE objects.
Fixed stack objects are preallocated and defined to be allocated before
any of the regular stack objects. These are normally used to model stack
arguments.
The AAPCS does not support passing SVE registers on the stack by value
(only by reference). The current layout also doesn't place them before
all stack objects, but rather before all SVE objects. Removing this
simplifies the code that emits the allocation/deallocation
around callee-saved registers (D84042).
This patch also removes all uses of fixedStack from from
framelayout-sve.mir, where this was used purely for testing purposes.
Reviewers: paulwalker-arm, efriedma, rengolin
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D84538
Commit: 26b4ef3694973ea2fa656d3d3a7f67f16f135654
https://github.com/llvm/llvm-project/commit/26b4ef3694973ea2fa656d3d3a7f67f16f135654
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2020-07-28 (Tue, 28 Jul 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/test/CodeGen/AArch64/framelayout-sve.mir
M llvm/test/CodeGen/AArch64/sve-trunc.ll
Log Message:
-----------
[AArch64][SVE] Don't align the last SVE callee save.
Instead of aligning the last callee-saved-register slot to the stack
alignment (16 bytes), just align the SVE callee-saved block. This also
simplifies the code that allocates space for the callee-saves.
This change is needed to make sure the offset to which the callee-saved
register is spilled, corresponds to the offset used for e.g. unwind call
frame instructions.
Reviewers: efriedma, paulwalker-arm, david-arm, rengolin
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D84042
Commit: cda2eb3ad2bbe923e74d6eb083af196a0622d800
https://github.com/llvm/llvm-project/commit/cda2eb3ad2bbe923e74d6eb083af196a0622d800
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2020-07-28 (Tue, 28 Jul 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/test/CodeGen/AArch64/framelayout-sve.mir
Log Message:
-----------
[AArch64][SVE] Fix epilogue for SVE when the stack is realigned.
While deallocating the stackframe, the offset used to reload the
callee-saved registers was not pointing to the SVE callee-saves,
but rather to the whole SVE area.
+--------------+
| GRP callee |
| saves |
+--------------+ <- FP
| SVE callee |
| saves |
+--------------+ <- Should restore SVE callee saves from here
| SVE Spills |
| and Locals |
+--------------+ <- instead of from here.
| |
: :
| |
+--------------+ <- SP
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D84539
Compare: https://github.com/llvm/llvm-project/compare/984cf99055a2...cda2eb3ad2bb
More information about the All-commits
mailing list