This is an archive of the discontinued LLVM Phabricator instance.

AArch64: Use SplitCSR for callee save registers used for parameters.
AbandonedPublic

Authored by MatzeB on Apr 15 2016, 3:33 PM.

Details

Summary

Callee save parameters that are also used to pass parameter values
should use virtual regs for save/restore to avoid unnecessary spills.

This is done by determining a list of callee saves (the ones handled in
FrameLowering) and SavedViaCopy (register is copied to a vreg so the
register allocator handles saving/restoring).

Related to rdar://25638054

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB updated this revision to Diff 53963.Apr 15 2016, 3:33 PM
MatzeB retitled this revision from to AArch64: Use SplitCSR for callee save registers used for parameters..
MatzeB updated this object.
MatzeB added reviewers: qcolombet, manmanren.
MatzeB set the repository for this revision to rL LLVM.
MatzeB added a subscriber: llvm-commits.
t.p.northover accepted this revision.Apr 18 2016, 2:31 PM
t.p.northover added a reviewer: t.p.northover.
t.p.northover added a subscriber: t.p.northover.

Looks reasonable. I hope it's worth it.

Tim.

lib/Target/AArch64/AArch64RegisterInfo.h
36

Typo on "teerminated".

This revision is now accepted and ready to land.Apr 18 2016, 2:32 PM
MatzeB abandoned this revision.Sep 10 2021, 10:05 AM