[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-29 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D40476#936700, @mcrosier wrote:

> In https://reviews.llvm.org/D40476#936372, @pirama wrote:
>
> > Thanks for the review.  Now let's just hope the windows bots stay happy :)
>
>
> Actually, I just checked and it looks like falkor and saphira were both added 
> as of a few weeks ago.  I'll revert this part of the patch shortly.


Done so in r319323.


Repository:
  rL LLVM

https://reviews.llvm.org/D40476



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D40476#936372, @pirama wrote:

> Thanks for the review.  Now let's just hope the windows bots stay happy :)


Actually, I just checked and it looks like falkor and saphira were both added 
as of a few weeks ago.  I'll revert this part of the patch shortly.


Repository:
  rL LLVM

https://reviews.llvm.org/D40476



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL319077: Switch CPU names not recognized by GNU assembler 
(authored by pirama).

Repository:
  rL LLVM

https://reviews.llvm.org/D40476

Files:
  cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
  cfe/trunk/test/Driver/as-mcpu.c


Index: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
@@ -42,6 +42,24 @@
  !O.hasFlag(options::DriverOption) && !O.hasFlag(options::LinkerInput);
 }
 
+// Switch CPU names not recognized by GNU assembler to a close CPU that it does
+// recognize, instead of a lower march from being picked in the absence of a 
cpu
+// flag.
+static void normalizeCPUNamesForAssembler(const ArgList ,
+  ArgStringList ) {
+  if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+StringRef CPUArg(A->getValue());
+if (CPUArg.equals_lower("krait"))
+  CmdArgs.push_back("-mcpu=cortex-a15");
+else if(CPUArg.equals_lower("kryo") ||
+CPUArg.equals_lower("falkor") ||
+CPUArg.equals_lower("saphira"))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+  }
+}
+
 void tools::gcc::Common::ConstructJob(Compilation , const JobAction ,
   const InputInfo ,
   const InputInfoList ,
@@ -652,23 +670,16 @@
 }
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
+normalizeCPUNamesForAssembler(Args, CmdArgs);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+normalizeCPUNamesForAssembler(Args, CmdArgs);
+
 break;
   }
   case llvm::Triple::mips:
Index: cfe/trunk/test/Driver/as-mcpu.c
===
--- cfe/trunk/test/Driver/as-mcpu.c
+++ cfe/trunk/test/Driver/as-mcpu.c
@@ -0,0 +1,17 @@
+// == Check that krait is substituted by cortex-a15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=falkor -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=falkor -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=saphira -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=saphira -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57


Index: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
@@ -42,6 +42,24 @@
  !O.hasFlag(options::DriverOption) && !O.hasFlag(options::LinkerInput);
 }
 
+// Switch CPU names not recognized by GNU assembler to a close CPU that it does
+// recognize, instead of a lower march from being picked in the absence of a cpu
+// flag.
+static void normalizeCPUNamesForAssembler(const ArgList ,
+  ArgStringList ) {
+  if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+StringRef CPUArg(A->getValue());
+if (CPUArg.equals_lower("krait"))
+  CmdArgs.push_back("-mcpu=cortex-a15");
+else if(CPUArg.equals_lower("kryo") ||
+CPUArg.equals_lower("falkor") ||
+CPUArg.equals_lower("saphira"))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+  }
+}
+
 void 

[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama updated this revision to Diff 124417.
pirama added a comment.

Normalize falkor and saphira as well.


https://reviews.llvm.org/D40476

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/as-mcpu.c


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,17 @@
+// == Check that krait is substituted by cortex-a15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=falkor -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=falkor -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=saphira -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=saphira -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -42,6 +42,24 @@
  !O.hasFlag(options::DriverOption) && !O.hasFlag(options::LinkerInput);
 }
 
+// Switch CPU names not recognized by GNU assembler to a close CPU that it does
+// recognize, instead of a lower march from being picked in the absence of a 
cpu
+// flag.
+static void normalizeCPUNamesForAssembler(const ArgList ,
+  ArgStringList ) {
+  if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+StringRef CPUArg(A->getValue());
+if (CPUArg.equals_lower("krait"))
+  CmdArgs.push_back("-mcpu=cortex-a15");
+else if(CPUArg.equals_lower("kryo") ||
+CPUArg.equals_lower("falkor") ||
+CPUArg.equals_lower("saphira"))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+  }
+}
+
 void tools::gcc::Common::ConstructJob(Compilation , const JobAction ,
   const InputInfo ,
   const InputInfoList ,
@@ -652,23 +670,16 @@
 }
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
+normalizeCPUNamesForAssembler(Args, CmdArgs);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+normalizeCPUNamesForAssembler(Args, CmdArgs);
+
 break;
   }
   case llvm::Triple::mips:


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,17 @@
+// == Check that krait is substituted by cortex-a15 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=falkor -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=falkor -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+
+// RUN: %clang -target arm-linux -mcpu=saphira -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux 

[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

Am I correct in assuming this is going to be a problem for Falkor and Saphira 
as well?  If so, can you add solutions for those as well?  Cortex-a57 should be 
good enough for those targets as well.


https://reviews.llvm.org/D40476



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama updated this revision to Diff 124415.
pirama added a comment.

Sink 'Arg *' declaration.


https://reviews.llvm.org/D40476

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/as-mcpu.c


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-a15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,35 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For 
now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+  StringRef CPUArg(A->getValue());
+  if(CPUArg.equals_lower("krait"))
+CmdArgs.push_back("-mcpu=cortex-a15");
+  else if(CPUArg.equals_lower("kryo"))
+CmdArgs.push_back("-mcpu=cortex-a57");
+  else
+Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+}
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+
+// FIXME: remove kryo check when GNU tools support them.  For now use
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A;
+if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
+(StringRef(A->getValue()).equals_lower("kryo")))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 break;
   }
   case llvm::Triple::mips:


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-a15 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,35 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+  StringRef CPUArg(A->getValue());
+  

[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Stephen Hines via Phabricator via cfe-commits
srhines added inline comments.



Comment at: lib/Driver/ToolChains/Gnu.cpp:661
 Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+if ((A = Args.getLastArg(options::OPT_mcpu_EQ))) {
+  StringRef CPUArg(A->getValue());

Arg *A can also get moved here.


https://reviews.llvm.org/D40476



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama updated this revision to Diff 124410.
pirama added a comment.

Address review comments.


https://reviews.llvm.org/D40476

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/as-mcpu.c


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-a15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,36 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
+// FIXME: remove krait and kryo checks when GNU tools support them.  For 
now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
 Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+if ((A= Args.getLastArg(options::OPT_mcpu_EQ))) {
+  StringRef CPUArg(A->getValue());
+  if(CPUArg.equals_lower("krait"))
+CmdArgs.push_back("-mcpu=cortex-a15");
+  else if(CPUArg.equals_lower("kryo"))
+CmdArgs.push_back("-mcpu=cortex-a57");
+  else
+Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+}
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+
+// FIXME: remove kryo check when GNU tools support them.  For now use
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A;
+if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
+(StringRef(A->getValue()).equals_lower("kryo")))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 break;
   }
   case llvm::Triple::mips:


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-a15 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-a57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,36 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
+// FIXME: remove krait and kryo checks when GNU tools support them.  For now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
 Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+if ((A= Args.getLastArg(options::OPT_mcpu_EQ))) {
+  StringRef CPUArg(A->getValue());
+  

[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-27 Thread Stephen Hines via Phabricator via cfe-commits
srhines added inline comments.



Comment at: lib/Driver/ToolChains/Gnu.cpp:660
+// of a cpu flag.
+Arg *A = Args.getLastArg(options::OPT_mcpu_EQ);
+if (A) {

Is it better to sink A into the if condition again?



Comment at: test/Driver/as-mcpu.c:1
+// == Check that krait is substituted by cortex-15 when 
invoking
+// the assembler

cortex-a15 - this is missing the "a".



Comment at: test/Driver/as-mcpu.c:6
+
+// == Check that kryo is substituted by cortex-57 when invoking
+// the assembler

cortex-a57


https://reviews.llvm.org/D40476



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-26 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama updated this revision to Diff 124318.
pirama added a comment.

Few refactorings.


https://reviews.llvm.org/D40476

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/as-mcpu.c


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,36 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For 
now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A = Args.getLastArg(options::OPT_mcpu_EQ);
+if (A) {
+  StringRef CPUArg(A->getValue());
+  if(CPUArg.equals_lower("krait"))
+CmdArgs.push_back("-mcpu=cortex-a15");
+  else if(CPUArg.equals_lower("kryo"))
+CmdArgs.push_back("-mcpu=cortex-a57");
+  else
+Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+}
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+
+// FIXME: remove kryo check when GNU tools support them.  For now use
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A;
+if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
+(StringRef(A->getValue()).equals_lower("kryo")))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 break;
   }
   case llvm::Triple::mips:


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-15 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: as{{(.exe)?}}" "{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,36 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A = Args.getLastArg(options::OPT_mcpu_EQ);
+if (A) {
+  StringRef CPUArg(A->getValue());
+  

[PATCH] D40476: Switch kryo to use -mcpu=cortex-a57 when invoking the assembler

2017-11-26 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama created this revision.

Using -no-integrated-as causes -mcpu=kryo to fail since GNU assembler
doesn't recognize kryo.  Cortex-a57 is the closest CPU to kryo that the
assembler does recognize.  So we should switch the assembler to use
that instead.


https://reviews.llvm.org/D40476

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/as-mcpu.c


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-15 when 
invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: bin/as{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 
2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v 
-fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: bin/as{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,35 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For 
now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A = Args.getLastArg(options::OPT_mcpu_EQ);
+if (A) {
+  if(StringRef(A->getValue()).equals_lower("krait"))
+CmdArgs.push_back("-mcpu=cortex-a15");
+  else if(StringRef(A->getValue()).equals_lower("kryo"))
+CmdArgs.push_back("-mcpu=cortex-a57");
+  else
+Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+}
 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
 break;
   }
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_be: {
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
-Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+
+// FIXME: remove kryo check when GNU tools support them.  For now use
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a cpu flag.
+Arg *A;
+if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
+(StringRef(A->getValue()).equals_lower("kryo")))
+  CmdArgs.push_back("-mcpu=cortex-a57");
+else
+  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
 break;
   }
   case llvm::Triple::mips:


Index: test/Driver/as-mcpu.c
===
--- /dev/null
+++ test/Driver/as-mcpu.c
@@ -0,0 +1,10 @@
+// == Check that krait is substituted by cortex-15 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=krait -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A15 %s
+// CHECK-CORTEX-A15: bin/as{{.*}}-mcpu=cortex-a15
+
+// == Check that kryo is substituted by cortex-57 when invoking
+// the assembler
+// RUN: %clang -target arm-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// RUN: %clang -target aarch64-linux -mcpu=kryo -### -c %s -v -fno-integrated-as 2>&1 | FileCheck -check-prefix=CHECK-CORTEX-A57 %s
+// CHECK-CORTEX-A57: bin/as{{.*}}-mcpu=cortex-a57
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -653,22 +653,35 @@
 
 Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
 
-// FIXME: remove krait check when GNU tools support krait cpu
-// for now replace it with -mcpu=cortex-a15 to avoid a lower
-// march from being picked in the absence of a cpu flag.
-Arg *A;
-if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&
-StringRef(A->getValue()).equals_lower("krait"))
-  CmdArgs.push_back("-mcpu=cortex-a15");
-else
-  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
+// FIXME: remove krait and kryo checks when GNU tools support them.  For now
+// use -mcpu=cortex-a15 for krait and -mcpu=cortex-a57 for kryo
+// -mcpu=cortex-a57 to avoid a lower march from being picked in the absence
+// of a