]> granicus.if.org Git - clang/commitdiff
Don't imply -flto with -O4.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 23 Aug 2013 21:49:00 +0000 (21:49 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 23 Aug 2013 21:49:00 +0000 (21:49 +0000)
We now saturate at -O3.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189149 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ReleaseNotes.rst
lib/Driver/Driver.cpp
test/Driver/clang_f_opts.c
test/Driver/emit-llvm.c [deleted file]
test/Driver/lto.c

index 601f56654d8de97e209a41c555ecb529fbba8685..8dd26faab9f4da640bc06456cc29438fb5adf1b2 100644 (file)
@@ -59,6 +59,8 @@ about them. The improvements since the 3.3 release include:
 New Compiler Flags
 ------------------
 
+- Clang no longer special cases -O4 to enable lto. Explicitly pass -flto to
+  enable it.
 -  ...
 
 C Language Changes in Clang
index 09da30d2bc59865b56ec6031087e32c7f39d5f1a..a309625ac400ffd9867c1f1a79889738783c43a8 100644 (file)
@@ -1359,10 +1359,6 @@ bool Driver::IsUsingLTO(const ArgList &Args) const {
   if (Args.hasFlag(options::OPT_flto, options::OPT_fno_lto, false))
     return true;
 
-  // Check for -O4.
-  if (const Arg *A = Args.getLastArg(options::OPT_O_Group))
-      return A->getOption().matches(options::OPT_O4);
-
   return false;
 }
 
index e1005d713ad9eb18b0b47f64a8524e03041343ae..52db4a2d20df2b0c12df53fb343a41888ed5e572 100644 (file)
@@ -56,7 +56,6 @@
 // RUN: %clang -### -S -O2 %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
 // RUN: %clang -### -S -Os %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
 // RUN: %clang -### -S -O3 %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
-// RUN: %clang -### -S -O4 %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
 // RUN: %clang -### -S -fno-vectorize -O3 %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
 // RUN: %clang -### -S -O1 -fvectorize %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
 // RUN: %clang -### -S -Ofast %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s
@@ -96,3 +95,6 @@
 
 // RUN: %clang -### -S -fpascal-strings -mno-pascal-strings %s 2>&1 | FileCheck -check-prefix=CHECK-NO-M-PASCAL-STRINGS %s
 // CHECK-NO-M-PASCAL-STRINGS-NOT: "-fpascal-strings"
+
+// RUN: %clang -### -S -O4 %s 2>&1 | FileCheck -check-prefix=CHECK-MAX-O %s
+// CHECK-MAX-O: -O3
diff --git a/test/Driver/emit-llvm.c b/test/Driver/emit-llvm.c
deleted file mode 100644 (file)
index 76ea059..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// Check that -O4 is only honored as the effective -O option.
-// <rdar://problem/7046672> clang/loader problem
-
-// RUN: %clang -ccc-print-phases -c -O4 -O0 %s 2> %t
-// RUN: FileCheck --check-prefix=O4_AND_O0 %s < %t
-
-// O4_AND_O0: 0: input, "{{.*}}", c
-// O4_AND_O0: 1: preprocessor, {0}, cpp-output
-// O4_AND_O0: 2: compiler, {1}, assembler
-// O4_AND_O0: 3: assembler, {2}, object
index 4f7fd79f24753e58d1d3479808f681e749c4b209..511c19b578e87d8b74d51b5a763f65d6c9c1e74a 100644 (file)
@@ -1,8 +1,6 @@
-// -flto and -O4 both cause a switch to llvm-bc object files.
+// -flto causes a switch to llvm-bc object files.
 // RUN: %clang -ccc-print-phases -c %s -flto 2> %t.log
 // RUN: grep '2: compiler, {1}, lto-bc' %t.log
-// RUN: %clang -ccc-print-phases -c %s -O4 2> %t.log
-// RUN: grep '2: compiler, {1}, lto-bc' %t.log
 
 // RUN: %clang -ccc-print-phases %s -flto 2> %t.log
 // RUN: grep '0: input, ".*lto.c", c' %t.log