Author: brad Date: Thu Apr 11 18:29:18 2019 New Revision: 358245 URL: http://llvm.org/viewvc/llvm-project?rev=358245&view=rev Log: Enable frame pointer elimination for OpenBSD on x86 and mips64.
Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp cfe/trunk/test/Driver/frame-pointer-elim.c Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=358245&r1=358244&r2=358245&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Thu Apr 11 18:29:18 2019 @@ -534,6 +534,18 @@ static bool useFramePointerForTargetByDe return !areOptimizationsEnabled(Args); } + if (Triple.isOSOpenBSD()) { + switch (Triple.getArch()) { + case llvm::Triple::mips64: + case llvm::Triple::mips64el: + case llvm::Triple::x86: + case llvm::Triple::x86_64: + return !areOptimizationsEnabled(Args); + default: + return true; + } + } + if (Triple.isOSLinux() || Triple.getOS() == llvm::Triple::CloudABI || Triple.isOSHurd()) { switch (Triple.getArch()) { Modified: cfe/trunk/test/Driver/frame-pointer-elim.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/frame-pointer-elim.c?rev=358245&r1=358244&r2=358245&view=diff ============================================================================== --- cfe/trunk/test/Driver/frame-pointer-elim.c (original) +++ cfe/trunk/test/Driver/frame-pointer-elim.c Thu Apr 11 18:29:18 2019 @@ -26,6 +26,15 @@ // RUN: FileCheck --check-prefix=NETBSD %s // NETBSD-NOT: "-momit-leaf-frame-pointer" +// OpenBSD follows the same rules as Linux. +// RUN: %clang -### -target x86_64-unknown-openbsd -S -O1 %s 2>&1 | \ +// RUN: FileCheck --check-prefix=OPENBSD-OPT %s +// OPENBSD-OPT: "-momit-leaf-frame-pointer" + +// RUN: %clang -### -target x86_64-unknown-openbsd -S %s 2>&1 | \ +// RUN: FileCheck --check-prefix=OPENBSD %s +// OPENBSD-NOT: "-momit-leaf-frame-pointer" + // Darwin disables omitting the leaf frame pointer even under optimization // unless the command lines are given. // RUN: %clang -### -target i386-apple-darwin -S %s 2>&1 | \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits