Page MenuHomePhabricator

[AArch64][SVE] Don't support fixedStack for SVE objects.
ClosedPublic

Authored by sdesmalen on Jul 24 2020, 9:31 AM.

Details

Summary

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.

Diff Detail

Event Timeline

sdesmalen created this revision.Jul 24 2020, 9:31 AM
Herald added a project: Restricted Project. · View Herald Transcript
paulwalker-arm accepted this revision.Jul 27 2020, 4:11 AM
paulwalker-arm added inline comments.
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
2600–2601

Given the for loop is just for the assert should it be protected by debug or something?

This revision is now accepted and ready to land.Jul 27 2020, 4:11 AM