r266753 - Revert r266747 (Compilation for Intel MCU (Part 1/3)) since it breaks a few buildbots.

2016-04-19 Thread Andrey Turetskiy via cfe-commits
Author: aturetsk
Date: Tue Apr 19 11:25:30 2016
New Revision: 266753

URL: http://llvm.org/viewvc/llvm-project?rev=266753=rev
Log:
Revert r266747 (Compilation for Intel MCU (Part 1/3)) since it breaks a few 
buildbots.

Removed:
cfe/trunk/test/Driver/miamcu-opt.c
Modified:
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/lib/Driver/Driver.cpp
cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=266753=266752=266753=diff
==
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Tue Apr 19 11:25:30 2016
@@ -1292,8 +1292,6 @@ def m3dnow : Flag<["-"], "m3dnow">, Grou
 def m64 : Flag<["-"], "m64">, Group, Flags<[DriverOption, 
CoreOption]>;
 def mx32 : Flag<["-"], "mx32">, Group, Flags<[DriverOption, 
CoreOption]>;
 def mabi_EQ : Joined<["-"], "mabi=">, Group;
-def miamcu : Flag<["-"], "miamcu">, Group, Flags<[DriverOption, 
CoreOption]>,
-  HelpText<"Use Intel MCU ABI">;
 def malign_functions_EQ : Joined<["-"], "malign-functions=">, 
Group;
 def malign_loops_EQ : Joined<["-"], "malign-loops=">, 
Group;
 def malign_jumps_EQ : Joined<["-"], "malign-jumps=">, 
Group;

Modified: cfe/trunk/lib/Driver/Driver.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=266753=266752=266753=diff
==
--- cfe/trunk/lib/Driver/Driver.cpp (original)
+++ cfe/trunk/lib/Driver/Driver.cpp Tue Apr 19 11:25:30 2016
@@ -278,10 +278,6 @@ DerivedArgList *Driver::TranslateInputAr
 DAL->append(A);
   }
 
-  // Enforce -static if -miamcu is present.
-  if (Args.hasArg(options::OPT_miamcu))
-DAL->AddFlagArg(0, Opts->getOption(options::OPT_static));
-
 // Add a default value of -mlinker-version=, if one was given and the user
 // didn't specify one.
 #if defined(HOST_LINK_VERSION)
@@ -300,8 +296,7 @@ DerivedArgList *Driver::TranslateInputAr
 ///
 /// This routine provides the logic to compute a target triple from various
 /// args passed to the driver and the default triple string.
-static llvm::Triple computeTargetTriple(const Driver ,
-StringRef DefaultTargetTriple,
+static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple,
 const ArgList ,
 StringRef DarwinArchName = "") {
   // FIXME: Already done in Compilation *Driver::BuildCompilation
@@ -346,9 +341,8 @@ static llvm::Triple computeTargetTriple(
 return Target;
 
   // Handle pseudo-target flags '-m64', '-mx32', '-m32' and '-m16'.
-  Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_mx32,
-   options::OPT_m32, options::OPT_m16);
-  if (A) {
+  if (Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_mx32,
+   options::OPT_m32, options::OPT_m16)) {
 llvm::Triple::ArchType AT = llvm::Triple::UnknownArch;
 
 if (A->getOption().matches(options::OPT_m64)) {
@@ -373,25 +367,6 @@ static llvm::Triple computeTargetTriple(
   Target.setArch(AT);
   }
 
-  // Handle -miamcu flag.
-  if (Args.hasArg(options::OPT_miamcu)) {
-if (Target.get32BitArchVariant().getArch() != llvm::Triple::x86)
-  D.Diag(diag::err_drv_unsupported_opt_for_target) << "-miamcu"
-   << Target.str();
-
-if (A && !A->getOption().matches(options::OPT_m32))
-  D.Diag(diag::err_drv_argument_not_allowed_with)
-  << "-miamcu" << A->getBaseArg().getAsString(Args);
-
-Target.setArch(llvm::Triple::x86);
-Target.setArchName("i586");
-Target.setEnvironment(llvm::Triple::UnknownEnvironment);
-Target.setEnvironmentName("");
-Target.setOS(llvm::Triple::ELFIAMCU);
-Target.setVendor(llvm::Triple::UnknownVendor);
-Target.setVendorName("intel");
-  }
-
   return Target;
 }
 
@@ -526,8 +501,8 @@ Compilation *Driver::BuildCompilation(Ar
   DerivedArgList *TranslatedArgs = TranslateInputArgs(*UArgs);
 
   // Owned by the host.
-  const ToolChain  = getToolChain(
-  *UArgs, computeTargetTriple(*this, DefaultTargetTriple, *UArgs));
+  const ToolChain  =
+  getToolChain(*UArgs, computeTargetTriple(DefaultTargetTriple, *UArgs));
 
   // The compilation takes ownership of Args.
   Compilation *C = new Compilation(*this, TC, UArgs.release(), TranslatedArgs);
@@ -2006,9 +1981,9 @@ InputInfo Driver::BuildJobsForActionNoCa

r266747 - Compilation for Intel MCU (Part 1/3)

2016-04-19 Thread Andrey Turetskiy via cfe-commits
Author: aturetsk
Date: Tue Apr 19 10:50:57 2016
New Revision: 266747

URL: http://llvm.org/viewvc/llvm-project?rev=266747=rev
Log:
Compilation for Intel MCU (Part 1/3)

Add -miamcu option which:
  * Sets IAMCU triple
  * Sets IAMCU ABI
  * Enforces static compilation

Differential Revision: http://reviews.llvm.org/D18398

Added:
cfe/trunk/test/Driver/miamcu-opt.c   (with props)
Modified:
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/lib/Driver/Driver.cpp
cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=266747=266746=266747=diff
==
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Tue Apr 19 10:50:57 2016
@@ -1292,6 +1292,8 @@ def m3dnow : Flag<["-"], "m3dnow">, Grou
 def m64 : Flag<["-"], "m64">, Group, Flags<[DriverOption, 
CoreOption]>;
 def mx32 : Flag<["-"], "mx32">, Group, Flags<[DriverOption, 
CoreOption]>;
 def mabi_EQ : Joined<["-"], "mabi=">, Group;
+def miamcu : Flag<["-"], "miamcu">, Group, Flags<[DriverOption, 
CoreOption]>,
+  HelpText<"Use Intel MCU ABI">;
 def malign_functions_EQ : Joined<["-"], "malign-functions=">, 
Group;
 def malign_loops_EQ : Joined<["-"], "malign-loops=">, 
Group;
 def malign_jumps_EQ : Joined<["-"], "malign-jumps=">, 
Group;

Modified: cfe/trunk/lib/Driver/Driver.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=266747=266746=266747=diff
==
--- cfe/trunk/lib/Driver/Driver.cpp (original)
+++ cfe/trunk/lib/Driver/Driver.cpp Tue Apr 19 10:50:57 2016
@@ -278,6 +278,10 @@ DerivedArgList *Driver::TranslateInputAr
 DAL->append(A);
   }
 
+  // Enforce -static if -miamcu is present.
+  if (Args.hasArg(options::OPT_miamcu))
+DAL->AddFlagArg(0, Opts->getOption(options::OPT_static));
+
 // Add a default value of -mlinker-version=, if one was given and the user
 // didn't specify one.
 #if defined(HOST_LINK_VERSION)
@@ -296,7 +300,8 @@ DerivedArgList *Driver::TranslateInputAr
 ///
 /// This routine provides the logic to compute a target triple from various
 /// args passed to the driver and the default triple string.
-static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple,
+static llvm::Triple computeTargetTriple(const Driver ,
+StringRef DefaultTargetTriple,
 const ArgList ,
 StringRef DarwinArchName = "") {
   // FIXME: Already done in Compilation *Driver::BuildCompilation
@@ -341,8 +346,9 @@ static llvm::Triple computeTargetTriple(
 return Target;
 
   // Handle pseudo-target flags '-m64', '-mx32', '-m32' and '-m16'.
-  if (Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_mx32,
-   options::OPT_m32, options::OPT_m16)) {
+  Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_mx32,
+   options::OPT_m32, options::OPT_m16);
+  if (A) {
 llvm::Triple::ArchType AT = llvm::Triple::UnknownArch;
 
 if (A->getOption().matches(options::OPT_m64)) {
@@ -367,6 +373,25 @@ static llvm::Triple computeTargetTriple(
   Target.setArch(AT);
   }
 
+  // Handle -miamcu flag.
+  if (Args.hasArg(options::OPT_miamcu)) {
+if (Target.get32BitArchVariant().getArch() != llvm::Triple::x86)
+  D.Diag(diag::err_drv_unsupported_opt_for_target) << "-miamcu"
+   << Target.str();
+
+if (A && !A->getOption().matches(options::OPT_m32))
+  D.Diag(diag::err_drv_argument_not_allowed_with)
+  << "-miamcu" << A->getBaseArg().getAsString(Args);
+
+Target.setArch(llvm::Triple::x86);
+Target.setArchName("i586");
+Target.setEnvironment(llvm::Triple::UnknownEnvironment);
+Target.setEnvironmentName("");
+Target.setOS(llvm::Triple::ELFIAMCU);
+Target.setVendor(llvm::Triple::UnknownVendor);
+Target.setVendorName("intel");
+  }
+
   return Target;
 }
 
@@ -501,8 +526,8 @@ Compilation *Driver::BuildCompilation(Ar
   DerivedArgList *TranslatedArgs = TranslateInputArgs(*UArgs);
 
   // Owned by the host.
-  const ToolChain  =
-  getToolChain(*UArgs, computeTargetTriple(DefaultTargetTriple, *UArgs));
+  const ToolChain  = getToolChain(
+  *UArgs, computeTargetTriple(*this, DefaultTargetTriple, *UArgs));
 
   // The compilation takes ownership of Args.
   Compilation *C = new Compilation(*this, TC, UArgs.release(), TranslatedArgs);
@@ -1981,9 +2006,9 @@ InputInfo Driver::BuildJobsForActionNoCa
 const char *ArchName = BAA->getArchName();
 
 if (ArchName)
-  TC = (
-  C.getArgs(),
-  computeTargetTriple(DefaultTargetTriple, C.getArgs(), ArchName));
+  TC = (C.getArgs(),
+