]> granicus.if.org Git - clang/commitdiff
Simplify now that -O4 just maps to -O3 and -O is an alias of -O2.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 26 Aug 2013 14:05:41 +0000 (14:05 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 26 Aug 2013 14:05:41 +0000 (14:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189218 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/Options.td
lib/Driver/Tools.cpp

index a9e2f53d2a21bff4bb305ef126c41e5baa4b5ade..b6ecdcd6a9088326de4643fa9332ed9fa013463e 100644 (file)
@@ -214,13 +214,13 @@ def MT : JoinedOrSeparate<["-"], "MT">, Group<M_Group>, Flags<[CC1Option]>,
 def Mach : Flag<["-"], "Mach">;
 def M : Flag<["-"], "M">, Group<M_Group>;
 def O0 : Flag<["-"], "O0">, Group<O_Group>, Flags<[CC1Option]>;
-def O4 : Flag<["-"], "O4">, Group<O_Group>, Flags<[CC1Option]>;
 def ObjCXX : Flag<["-"], "ObjC++">, Flags<[DriverOption]>,
   HelpText<"Treat source input files as Objective-C++ inputs">;
 def ObjC : Flag<["-"], "ObjC">, Flags<[DriverOption]>,
   HelpText<"Treat source input files as Objective-C inputs">;
 def O : Joined<["-"], "O">, Group<O_Group>, Flags<[CC1Option]>;
 def O_flag : Flag<["-"], "O">, Flags<[CC1Option]>, Alias<O>, AliasArgs<["2"]>;
+def O4 : Flag<["-"], "O4">, Alias<O>, AliasArgs<["3"]>;
 def Ofast : Joined<["-"], "Ofast">, Group<O_Group>, Flags<[CC1Option]>;
 def P : Flag<["-"], "P">, Flags<[CC1Option]>,
   HelpText<"Disable linemarker output in -E mode">;
index 1d5b18f0c93ce66c3d1c3a810e82429166550dab..49deb26e6a59d4623fd0264d9a1edec18f98aef9 100644 (file)
@@ -1863,8 +1863,7 @@ static bool isOptimizationLevelFast(const ArgList &Args) {
 /// \brief Vectorize at all optimization levels greater than 1 except for -Oz.
 static bool shouldEnableVectorizerAtOLevel(const ArgList &Args) {
   if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {
-    if (A->getOption().matches(options::OPT_O4) ||
-        A->getOption().matches(options::OPT_Ofast))
+    if (A->getOption().matches(options::OPT_Ofast))
       return true;
 
     if (A->getOption().matches(options::OPT_O0))
@@ -1872,9 +1871,9 @@ static bool shouldEnableVectorizerAtOLevel(const ArgList &Args) {
 
     assert(A->getOption().matches(options::OPT_O) && "Must have a -O flag");
 
-    // Vectorize -O (which really is -O2), -Os.
+    // Vectorize -Os.
     StringRef S(A->getValue());
-    if (S == "s" || S.empty())
+    if (S == "s")
       return true;
 
     // Don't vectorize -Oz.
@@ -2623,13 +2622,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
   // preprocessed inputs and configure concludes that -fPIC is not supported.
   Args.ClaimAllArgs(options::OPT_D);
 
-  // Manually translate -O4 to -O3; let clang reject others.
-  if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {
-    if (A->getOption().matches(options::OPT_O4))
-      CmdArgs.push_back("-O3");
-    else
-      A->render(Args, CmdArgs);
-  }
+  if (Arg *A = Args.getLastArg(options::OPT_O_Group))
+    A->render(Args, CmdArgs);
 
   // Don't warn about unused -flto.  This can happen when we're preprocessing or
   // precompiling.