diff options
author | Geoff Berry <gberry@codeaurora.org> | 2016-02-12 16:31:41 +0000 |
---|---|---|
committer | Geoff Berry <gberry@codeaurora.org> | 2016-02-12 16:31:41 +0000 |
commit | c25d3bd23860ced4c9bcff5667f9c5bba8e8fe02 (patch) | |
tree | 821c9cdc8d1193443f136e2dc5056ded5192f24d /llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp | |
parent | bdb04d9032c209cc4b0a6082f9c748ea38099bb8 (diff) | |
download | bcm5719-llvm-c25d3bd23860ced4c9bcff5667f9c5bba8e8fe02.tar.gz bcm5719-llvm-c25d3bd23860ced4c9bcff5667f9c5bba8e8fe02.zip |
[AArch64] Reduce number of callee-save save/restores.
Summary:
Before this change, callee-save registers would be rounded up to even
pairs of GPRs and FPRs. This change eliminates these extra padding
load/stores, though it does keep the stack allocation the same size
unless both the GPR and FPR sets have an odd size, in which case one
full pair stack slot (16 bytes) is saved.
This optimization cannot currently be done for MachO targets since they
rely on a fast-path .debug_frame equivalent that can only encode
callee-save registers as pairs.
Reviewers: t.p.northover, rengolin, mcrosier, jmolloy
Subscribers: aemerson, rengolin, mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D17000
llvm-svn: 260689
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp')
0 files changed, 0 insertions, 0 deletions