summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorBrad Smith <brad@comstyle.com>2019-04-12 01:29:18 +0000
committerBrad Smith <brad@comstyle.com>2019-04-12 01:29:18 +0000
commit21375ca136025f2a6dc55418d43630455ca0e98b (patch)
tree10a75ec3bfb78f0536154c0d989869c94fcc297f /clang/lib/Driver
parent492cad51a470964aac2351acf7e65d52dc4c04d5 (diff)
downloadbcm5719-llvm-21375ca136025f2a6dc55418d43630455ca0e98b.tar.gz
bcm5719-llvm-21375ca136025f2a6dc55418d43630455ca0e98b.zip
Enable frame pointer elimination for OpenBSD on x86 and mips64.
llvm-svn: 358245
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/ToolChains/Clang.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index a5b98aad54d..18856650a94 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -534,6 +534,18 @@ static bool useFramePointerForTargetByDefault(const ArgList &Args,
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()) {
OpenPOWER on IntegriCloud