[AArch64] Enable non-leaf frame pointer elimination.
authorGeoff Berry <gberry@codeaurora.org>
Wed, 2 Mar 2016 17:58:31 +0000 (17:58 +0000)
committerGeoff Berry <gberry@codeaurora.org>
Wed, 2 Mar 2016 17:58:31 +0000 (17:58 +0000)
commit62c1a1e7c7fc13b6763f999d100d91cff69afd93
tree12be1b475faac8a006f71dd0730a605fa48e6bf9
parent7d942d73b868a9ce7e202096778803d57f3ec73c
[AArch64] Enable non-leaf frame pointer elimination.

Summary:
This change enables frame pointer elimination in non-leaf functions.
The -fomit-frame-pointer option still needs to be used when compiling
via clang (or an equivalent method of not setting the
'no-frame-pointer-elim*' function attributes if generating llvm IR via
some other method) to take advantage of this optimization.

This change should be NFC when compiling via clang without
-fomit-frame-pointer.

Reviewers: t.p.northover

Subscribers: aemerson, rengolin, tberghammer, qcolombet, llvm-commits, danalbert, mcrosier, srhines

Differential Revision: http://reviews.llvm.org/D17730

llvm-svn: 262495
17 files changed:
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
llvm/test/CodeGen/AArch64/aarch64-deferred-spilling.ll
llvm/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
llvm/test/CodeGen/AArch64/arm64-abi_align.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-alloca.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
llvm/test/CodeGen/AArch64/arm64-hello.ll
llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
llvm/test/CodeGen/AArch64/emutls.ll
llvm/test/CodeGen/AArch64/f16-instructions.ll
llvm/test/CodeGen/AArch64/fastcc.ll
llvm/test/CodeGen/AArch64/local_vars.ll
llvm/test/CodeGen/AArch64/machine-combiner.ll
llvm/test/CodeGen/AArch64/regress-tblgen-chains.ll
llvm/test/CodeGen/AArch64/stack-guard-remat-bitcast.ll
llvm/test/DebugInfo/AArch64/frameindices.ll