OSDN Git Service

[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)
commit5a77517c7c04012ef8343008f35fc82ff16aad60
treed6e9b5e44523acb562bec936a8bfa19f19b1e2d1
parent0e7def0a346212032bbbe77a813f80531d902b73
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262495 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/Target/AArch64/AArch64FrameLowering.cpp
lib/Target/AArch64/AArch64RegisterInfo.cpp
test/CodeGen/AArch64/aarch64-deferred-spilling.ll
test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
test/CodeGen/AArch64/arm64-abi_align.ll
test/CodeGen/AArch64/arm64-fast-isel-alloca.ll
test/CodeGen/AArch64/arm64-fast-isel-call.ll
test/CodeGen/AArch64/arm64-hello.ll
test/CodeGen/AArch64/arm64-shrink-wrapping.ll
test/CodeGen/AArch64/emutls.ll
test/CodeGen/AArch64/f16-instructions.ll
test/CodeGen/AArch64/fastcc.ll
test/CodeGen/AArch64/local_vars.ll
test/CodeGen/AArch64/machine-combiner.ll
test/CodeGen/AArch64/regress-tblgen-chains.ll
test/CodeGen/AArch64/stack-guard-remat-bitcast.ll
test/DebugInfo/AArch64/frameindices.ll