From 17d0a15478e96d8de611c90e760ca4f7b4ff5490 Mon Sep 17 00:00:00 2001 From: Koakuma Date: Sat, 26 Nov 2022 23:45:45 -0500 Subject: [PATCH] [SPARC][clang] Enable frame pointer optimization by default Enable frame pointer optimization by default to match it with other targets. This brings a small reduction in generated binary sizes. Fixes bug #48327 Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D138532 --- clang/lib/Driver/ToolChains/Clang.cpp | 3 +++ clang/test/Driver/frame-pointer-elim.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index d8a1ebb..d8ece4e 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -538,6 +538,9 @@ static bool useFramePointerForTargetByDefault(const ArgList &Args, case llvm::Triple::ppc64le: case llvm::Triple::riscv32: case llvm::Triple::riscv64: + case llvm::Triple::sparc: + case llvm::Triple::sparcel: + case llvm::Triple::sparcv9: case llvm::Triple::amdgcn: case llvm::Triple::r600: case llvm::Triple::csky: diff --git a/clang/test/Driver/frame-pointer-elim.c b/clang/test/Driver/frame-pointer-elim.c index 79cc0ee..761b2ae 100644 --- a/clang/test/Driver/frame-pointer-elim.c +++ b/clang/test/Driver/frame-pointer-elim.c @@ -112,6 +112,20 @@ // RUN: %clang -### -target powerpc64 -S -O1 %s 2>&1 | \ // RUN: FileCheck --check-prefix=KEEP-NONE %s +// SPARC targets omit the frame pointer when optimizations are enabled. +// RUN: %clang -### -target sparc -S %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s +// RUN: %clang -### -target sparc -S -O1 %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s +// RUN: %clang -### -target sparcel -S %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s +// RUN: %clang -### -target sparcel -S -O1 %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s +// RUN: %clang -### -target sparc64 -S %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s +// RUN: %clang -### -target sparc64 -S -O1 %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s + // For AAarch32 (A32, T32) linux targets, default omit frame pointer when // optimizations are enabled. // RUN: %clang -### -target arm-linux-gnueabihf- -marm -S %s 2>&1 | \ -- 2.7.4