r244049 - Officially end my reign as owner of the driver.

2015-08-05 Thread Chad Rosier
Author: mcrosier
Date: Wed Aug  5 09:52:01 2015
New Revision: 244049

URL: http://llvm.org/viewvc/llvm-project?rev=244049&view=rev
Log:
Officially end my reign as owner of the driver.

Modified:
cfe/trunk/CODE_OWNERS.TXT

Modified: cfe/trunk/CODE_OWNERS.TXT
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/CODE_OWNERS.TXT?rev=244049&r1=244048&r2=244049&view=diff
==
--- cfe/trunk/CODE_OWNERS.TXT (original)
+++ cfe/trunk/CODE_OWNERS.TXT Wed Aug  5 09:52:01 2015
@@ -45,10 +45,6 @@ N: John McCall
 E: rjmcc...@apple.com
 D: Clang LLVM IR generation
 
-N: Chad Rosier
-E: mcros...@codeaurora.org
-D: Compiler driver
-
 N: Richard Smith
 E: rich...@metafoo.co.uk
 D: All parts of Clang not covered by someone else


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


RE: r244049 - Officially end my reign as owner of the driver.

2015-08-05 Thread Chad Rosier
Thanks, Aaron.  I'm fairly proud of the crash diagnostics and script 
generation.  Sadly, there's still much, much more to be done.

-Original Message-
From: aaron.ball...@gmail.com [mailto:aaron.ball...@gmail.com] On Behalf Of 
Aaron Ballman
Sent: Wednesday, August 05, 2015 10:53 AM
To: Chad Rosier
Cc: cfe-commits
Subject: Re: r244049 - Officially end my reign as owner of the driver.

On Wed, Aug 5, 2015 at 10:52 AM, Chad Rosier  wrote:
> Author: mcrosier
> Date: Wed Aug  5 09:52:01 2015
> New Revision: 244049
>
> URL: http://llvm.org/viewvc/llvm-project?rev=244049&view=rev
> Log:
> Officially end my reign as owner of the driver.

Thank you for all your work with it!

~Aaron

>
> Modified:
> cfe/trunk/CODE_OWNERS.TXT
>
> Modified: cfe/trunk/CODE_OWNERS.TXT
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/CODE_OWNERS.TXT?rev=2440
> 49&r1=244048&r2=244049&view=diff 
> ==
> 
> --- cfe/trunk/CODE_OWNERS.TXT (original)
> +++ cfe/trunk/CODE_OWNERS.TXT Wed Aug  5 09:52:01 2015
> @@ -45,10 +45,6 @@ N: John McCall
>  E: rjmcc...@apple.com
>  D: Clang LLVM IR generation
>
> -N: Chad Rosier
> -E: mcros...@codeaurora.org
> -D: Compiler driver
> -
>  N: Richard Smith
>  E: rich...@metafoo.co.uk
>  D: All parts of Clang not covered by someone else
>
>
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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


RE: r244049 - Officially end my reign as owner of the driver.

2015-08-05 Thread Chad Rosier
Thanks, Ted!!

-Original Message-
From: Ted kremenek [mailto:kreme...@apple.com] 
Sent: Wednesday, August 05, 2015 12:40 PM
To: Chad Rosier
Cc: cfe-commits@lists.llvm.org
Subject: Re: r244049 - Officially end my reign as owner of the driver.

Thanks for all your work on it, Chad.



> On Aug 5, 2015, at 7:52 AM, Chad Rosier  wrote:
> 
> Author: mcrosier
> Date: Wed Aug  5 09:52:01 2015
> New Revision: 244049
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=244049&view=rev
> Log:
> Officially end my reign as owner of the driver.
> 
> Modified:
>cfe/trunk/CODE_OWNERS.TXT
> 
> Modified: cfe/trunk/CODE_OWNERS.TXT
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/CODE_OWNERS.TXT?rev=2440
> 49&r1=244048&r2=244049&view=diff 
> ==
> 
> --- cfe/trunk/CODE_OWNERS.TXT (original)
> +++ cfe/trunk/CODE_OWNERS.TXT Wed Aug  5 09:52:01 2015
> @@ -45,10 +45,6 @@ N: John McCall
> E: rjmcc...@apple.com
> D: Clang LLVM IR generation
> 
> -N: Chad Rosier
> -E: mcros...@codeaurora.org
> -D: Compiler driver
> -
> N: Richard Smith
> E: rich...@metafoo.co.uk
> D: All parts of Clang not covered by someone else
> 
> 
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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


Re: [PATCH] D11766: "Claim" the arguments belonging to 'clang_ignored_gcc_optimization_f_Group'

2015-08-05 Thread Chad Rosier
mcrosier added a subscriber: mcrosier.
mcrosier accepted this revision.
mcrosier added a reviewer: mcrosier.
mcrosier added a comment.
This revision is now accepted and ready to land.

LGTM.


http://reviews.llvm.org/D11766



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


Re: Patch to Bugzilla 31373

2017-10-09 Thread Chad Rosier via cfe-commits

Hi Erik,

You might consider posting your patch to Phabricator.  You'll likely get 
more feedback/traction there..


https://llvm.org/docs/Phabricator.html

 Chad


On 10/6/2017 8:15 AM, Erik Viktorsson via cfe-commits wrote:


Committing a patch to Bugzilla 31373 



A novice programmer so hopefully it complies with the coding policy.

I had to disable an assert in lib/CodeGen/CGExpr.cpp since it requires 
that all expressions are marked as Used or referenced, which is not 
possible if we want the ShouldDiagnoseUnusedDecl to return true (thus 
trigger the warn_unused_variable  warning).


The reason I removed the assert statement is because it causes five 
tests to fail. These test are the following:


·clang -cc1 -triple i386-unknown-unknown -mllvm -inline-threshold=1024 
-O3 -emit-llvm temp-order.cpp


·clang -cc1 -debug-info-kind=limited -std=c++11 -emit-llvm 
debug-info-scope.cpp


·clang -cc1 -std=c++1z -triple x86_64-apple-macosx10.7.0 -emit-llvm 
cxx1z-init-statement.cpp


·clang -cc1 -triple x86_64-apple-darwin10 -emit-llvm condition.cpp

·clang -cc1 -emit-llvm cxx-condition.cpp

/E



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


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


r319323 - [Driver] Turns out the GNU assembler does support falkor/saphira.

2017-11-29 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Wed Nov 29 08:42:44 2017
New Revision: 319323

URL: http://llvm.org/viewvc/llvm-project?rev=319323&view=rev
Log:
[Driver] Turns out the GNU assembler does support falkor/saphira.

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

Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=319323&r1=319322&r2=319323&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Wed Nov 29 08:42:44 2017
@@ -51,9 +51,7 @@ static void normalizeCPUNamesForAssemble
 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"))
+else if(CPUArg.equals_lower("kryo"))
   CmdArgs.push_back("-mcpu=cortex-a57");
 else
   Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);

Modified: cfe/trunk/test/Driver/as-mcpu.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/as-mcpu.c?rev=319323&r1=319322&r2=319323&view=diff
==
--- cfe/trunk/test/Driver/as-mcpu.c (original)
+++ cfe/trunk/test/Driver/as-mcpu.c Wed Nov 29 08:42:44 2017
@@ -8,10 +8,4 @@
 // 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


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


r311660 - [Driver][AArch64] Add tests for RDM feature.

2017-08-24 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Aug 24 07:32:55 2017
New Revision: 311660

URL: http://llvm.org/viewvc/llvm-project?rev=311660&view=rev
Log:
[Driver][AArch64] Add tests for RDM feature.

Differential Revision: https://reviews.llvm.org/D37106

Added:
cfe/trunk/test/Driver/aarch64-rdm.c

Added: cfe/trunk/test/Driver/aarch64-rdm.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/aarch64-rdm.c?rev=311660&view=auto
==
--- cfe/trunk/test/Driver/aarch64-rdm.c (added)
+++ cfe/trunk/test/Driver/aarch64-rdm.c Thu Aug 24 07:32:55 2017
@@ -0,0 +1,9 @@
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=falkor -### -c %s 2>&1 | 
FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=thunderx2t99 -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// CHECK-RDM: "-target-feature" "+rdm"
+
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// CHECK-NORDM: "-target-feature" "-rdm"


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


r329754 - [Driver] Handle the default case missed in r329748.

2018-04-10 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Apr 10 13:30:16 2018
New Revision: 329754

URL: http://llvm.org/viewvc/llvm-project?rev=329754&view=rev
Log:
[Driver] Handle the default case missed in r329748.

Differential Revision: https://reviews.llvm.org/D45499

Modified:
cfe/trunk/lib/Driver/ToolChains/NaCl.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/NaCl.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NaCl.cpp?rev=329754&r1=329753&r2=329754&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NaCl.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NaCl.cpp Tue Apr 10 13:30:16 2018
@@ -316,6 +316,8 @@ void NaClToolChain::addLibCxxIncludePath
 
   SmallString<128> P(D.Dir + "/../");
   switch (getTriple().getArch()) {
+  default:
+break;
   case llvm::Triple::arm:
 llvm::sys::path::append(P, "arm-nacl/include/c++/v1");
 addSystemInclude(DriverArgs, CC1Args, P.str());


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


r329810 - [Driver] Don't forward -m[no-]unaligned-access options to GCC when assembling/linking

2018-04-11 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Wed Apr 11 07:20:37 2018
New Revision: 329810

URL: http://llvm.org/viewvc/llvm-project?rev=329810&view=rev
Log:
[Driver] Don't forward -m[no-]unaligned-access options to GCC when 
assembling/linking

Differential Revision: https://reviews.llvm.org/D45092

Modified:
cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
cfe/trunk/test/Driver/gcc_forward.c

Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=329810&r1=329809&r2=329810&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Wed Apr 11 07:20:37 2018
@@ -85,6 +85,13 @@ void tools::gcc::Common::ConstructJob(Co
   A->getOption().matches(options::OPT_W_Group))
 continue;
 
+  // Don't forward -mno-unaligned-access since GCC doesn't understand
+  // it and because it doesn't affect the assembly or link steps.
+  if ((isa(JA) || isa(JA)) &&
+  (A->getOption().matches(options::OPT_munaligned_access) ||
+   A->getOption().matches(options::OPT_mno_unaligned_access)))
+continue;
+
   A->render(Args, CmdArgs);
 }
   }

Modified: cfe/trunk/test/Driver/gcc_forward.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/gcc_forward.c?rev=329810&r1=329809&r2=329810&view=diff
==
--- cfe/trunk/test/Driver/gcc_forward.c (original)
+++ cfe/trunk/test/Driver/gcc_forward.c Wed Apr 11 07:20:37 2018
@@ -34,3 +34,9 @@
 // RUN:   | FileCheck --check-prefix=CHECK-ASM %s
 // CHECK-ASM: as
 // CHECK-ASM-NOT: "-g"
+
+// Check that we're not forwarding -mno-unaligned-access.
+// RUN: %clang -target aarch64-none-elf -mno-unaligned-access %s -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM %s
+// CHECK-ARM: gcc{{[^"]*}}"
+// CHECK-ARM-NOT: -mno-unaligned-access


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


r291574 - [AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.

2017-01-10 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Jan 10 11:20:28 2017
New Revision: 291574

URL: http://llvm.org/viewvc/llvm-project?rev=291574&view=rev
Log:
[AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.

Differential Revision: https://reviews.llvm.org/D28400

Modified:
cfe/trunk/lib/CodeGen/CGBuiltin.cpp
cfe/trunk/test/CodeGen/arm_acle.c
cfe/trunk/test/CodeGen/builtins-arm64.c

Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=291574&r1=291573&r2=291574&view=diff
==
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Tue Jan 10 11:20:28 2017
@@ -5226,14 +5226,14 @@ Value *CodeGenFunction::EmitAArch64Built
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
   if (BuiltinID == AArch64::BI__builtin_arm_rbit64) {
 assert((getContext().getTypeSize(E->getType()) == 64) &&
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
 
   if (BuiltinID == AArch64::BI__clear_cache) {

Modified: cfe/trunk/test/CodeGen/arm_acle.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/arm_acle.c?rev=291574&r1=291573&r2=291574&view=diff
==
--- cfe/trunk/test/CodeGen/arm_acle.c (original)
+++ cfe/trunk/test/CodeGen/arm_acle.c Tue Jan 10 11:20:28 2017
@@ -245,14 +245,14 @@ int16_t test_revsh(int16_t t) {
 
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i32 @llvm.aarch64.rbit.i32
+// AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
@@ -260,7 +260,7 @@ long test_rbitl(long t) {
 // ARM-LABEL: test_rbitll
 // AArch32: call i32 @llvm.arm.rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);
 }

Modified: cfe/trunk/test/CodeGen/builtins-arm64.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-arm64.c?rev=291574&r1=291573&r2=291574&view=diff
==
--- cfe/trunk/test/CodeGen/builtins-arm64.c (original)
+++ cfe/trunk/test/CodeGen/builtins-arm64.c Tue Jan 10 11:20:28 2017
@@ -10,12 +10,12 @@ void *tp (void) {
 // CHECK: call {{.*}} @llvm.thread.pointer()
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a)
 unsigned long long rbit64(unsigned long long a) {
   return __builtin_arm_rbit64(a);
 }


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


r291582 - [ARM] Use generic bitreverse intrinsic, rather than ARM specific rbit.

2017-01-10 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Jan 10 12:55:11 2017
New Revision: 291582

URL: http://llvm.org/viewvc/llvm-project?rev=291582&view=rev
Log:
[ARM] Use generic bitreverse intrinsic, rather than ARM specific rbit.

The backend already supports lowering this intrinsic to a rbit instruction.

Modified:
cfe/trunk/lib/CodeGen/CGBuiltin.cpp
cfe/trunk/test/CodeGen/arm_acle.c
cfe/trunk/test/CodeGen/builtins-arm.c

Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=291582&r1=291581&r2=291582&view=diff
==
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Tue Jan 10 12:55:11 2017
@@ -4318,9 +4318,9 @@ Value *CodeGenFunction::EmitARMBuiltinEx
   }
 
   if (BuiltinID == ARM::BI__builtin_arm_rbit) {
-return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::arm_rbit),
-   EmitScalarExpr(E->getArg(0)),
-  "rbit");
+llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
+return Builder.CreateCall(
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
 
   if (BuiltinID == ARM::BI__clear_cache) {

Modified: cfe/trunk/test/CodeGen/arm_acle.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/arm_acle.c?rev=291582&r1=291581&r2=291582&view=diff
==
--- cfe/trunk/test/CodeGen/arm_acle.c (original)
+++ cfe/trunk/test/CodeGen/arm_acle.c Tue Jan 10 12:55:11 2017
@@ -244,22 +244,22 @@ int16_t test_revsh(int16_t t) {
 }
 
 // ARM-LABEL: test_rbit
-// AArch32: call i32 @llvm.arm.rbit
+// AArch32: call i32 @llvm.bitreverse.i32
 // AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
-// AArch32: call i32 @llvm.arm.rbit
+// AArch32: call i32 @llvm.bitreverse.i32
 // AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
 
 // ARM-LABEL: test_rbitll
-// AArch32: call i32 @llvm.arm.rbit
-// AArch32: call i32 @llvm.arm.rbit
+// AArch32: call i32 @llvm.bitreverse.i32
+// AArch32: call i32 @llvm.bitreverse.i32
 // AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);

Modified: cfe/trunk/test/CodeGen/builtins-arm.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-arm.c?rev=291582&r1=291581&r2=291582&view=diff
==
--- cfe/trunk/test/CodeGen/builtins-arm.c (original)
+++ cfe/trunk/test/CodeGen/builtins-arm.c Tue Jan 10 12:55:11 2017
@@ -68,7 +68,7 @@ void test_barrier() {
   __builtin_arm_isb(3); //CHECK: call {{.*}} @llvm.arm.isb(i32 3)
 }
 
-// CHECK: call {{.*}} @llvm.arm.rbit(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);


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


[PATCH] D26674: [AArch64] Add driver tests for Qualcomm's Falkor CPU

2016-11-15 Thread Chad Rosier via cfe-commits
mcrosier created this revision.
mcrosier added reviewers: rengolin, t.p.northover.
mcrosier added a subscriber: cfe-commits.
Herald added a subscriber: aemerson.

LLVM implementation here: https://reviews.llvm.org/D26673.

Chad


https://reviews.llvm.org/D26674

Files:
  test/Driver/aarch64-cpus.c


Index: test/Driver/aarch64-cpus.c
===
--- test/Driver/aarch64-cpus.c
+++ test/Driver/aarch64-cpus.c
@@ -116,6 +116,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m2 -### -c %s 2>&1 
| FileCheck -check-prefix=ARM64-M2 %s
 // ARM64-M2: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m2"
 
+// RUN: %clang -target aarch64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// FALKOR: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "falkor"
+
+// RUN: %clang -target arm64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// ARM64-FALKOR: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "falkor"
+
 // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s


Index: test/Driver/aarch64-cpus.c
===
--- test/Driver/aarch64-cpus.c
+++ test/Driver/aarch64-cpus.c
@@ -116,6 +116,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m2 -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-M2 %s
 // ARM64-M2: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m2"
 
+// RUN: %clang -target aarch64 -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// FALKOR: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "falkor"
+
+// RUN: %clang -target arm64 -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// ARM64-FALKOR: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "falkor"
+
 // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r287037 - [AArch64] Add driver tests for Qualcomm's Falkor CPU.

2016-11-15 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Nov 15 15:34:31 2016
New Revision: 287037

URL: http://llvm.org/viewvc/llvm-project?rev=287037&view=rev
Log:
[AArch64] Add driver tests for Qualcomm's Falkor CPU.

Differential Revision: https://reviews.llvm.org/D26674

Modified:
cfe/trunk/test/Driver/aarch64-cpus.c

Modified: cfe/trunk/test/Driver/aarch64-cpus.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/aarch64-cpus.c?rev=287037&r1=287036&r2=287037&view=diff
==
--- cfe/trunk/test/Driver/aarch64-cpus.c (original)
+++ cfe/trunk/test/Driver/aarch64-cpus.c Tue Nov 15 15:34:31 2016
@@ -116,6 +116,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m2 -### -c %s 2>&1 
| FileCheck -check-prefix=ARM64-M2 %s
 // ARM64-M2: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m2"
 
+// RUN: %clang -target aarch64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// FALKOR: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "falkor"
+
+// RUN: %clang -target arm64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// ARM64-FALKOR: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "falkor"
+
 // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s


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


[PATCH] D26674: [AArch64] Add driver tests for Qualcomm's Falkor CPU

2016-11-15 Thread Chad Rosier via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL287037: [AArch64] Add driver tests for Qualcomm's Falkor 
CPU. (authored by mcrosier).

Changed prior to commit:
  https://reviews.llvm.org/D26674?vs=78002&id=78070#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D26674

Files:
  cfe/trunk/test/Driver/aarch64-cpus.c


Index: cfe/trunk/test/Driver/aarch64-cpus.c
===
--- cfe/trunk/test/Driver/aarch64-cpus.c
+++ cfe/trunk/test/Driver/aarch64-cpus.c
@@ -116,6 +116,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m2 -### -c %s 2>&1 
| FileCheck -check-prefix=ARM64-M2 %s
 // ARM64-M2: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m2"
 
+// RUN: %clang -target aarch64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=FALKOR %s
+// FALKOR: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "falkor"
+
+// RUN: %clang -target arm64 -mcpu=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mtune=falkor -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-FALKOR %s
+// ARM64-FALKOR: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "falkor"
+
 // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s


Index: cfe/trunk/test/Driver/aarch64-cpus.c
===
--- cfe/trunk/test/Driver/aarch64-cpus.c
+++ cfe/trunk/test/Driver/aarch64-cpus.c
@@ -116,6 +116,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m2 -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-M2 %s
 // ARM64-M2: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m2"
 
+// RUN: %clang -target aarch64 -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=FALKOR %s
+// FALKOR: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "falkor"
+
+// RUN: %clang -target arm64 -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=falkor -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-FALKOR %s
+// ARM64-FALKOR: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "falkor"
+
 // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
 // RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck -check-prefix=KRYO %s
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D13304: Avoid inlining in throw statement

2015-10-01 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

FWIW, a llvm based solution was discussed in http://reviews.llvm.org/D12979, 
but the clang solution is obviously more robust and easier to implement.



Comment at: lib/CodeGen/CodeGenFunction.h:287
@@ +286,3 @@
+  // True if the current insertion point is in cold regions (e.g., exception
+  // handling regions). As of now, this flag is ture only when handling throw
+  // statement.

ture -> true


http://reviews.llvm.org/D13304



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


Re: [PATCH] D13304: Avoid inlining in throw statement

2015-11-03 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

@chandlerc: Adding Chandler in case he has an opinion on how to move forward or 
how we could go about tuning the cold threshold.


http://reviews.llvm.org/D13304



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


Re: [PATCH] D16966: Make -fno-math-builtin a cc1 option

2016-02-07 Thread Chad Rosier via cfe-commits
mcrosier accepted this revision.
mcrosier added a comment.
This revision is now accepted and ready to land.

LGTM.  Thanks, Frank.


http://reviews.llvm.org/D16966



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


Re: [PATCH] D17124: Add driver support for Qualcomm Kryo cpu.

2016-02-11 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

In http://reviews.llvm.org/D17124#350130, @rengolin wrote:

> I'm assuming you also have the LLVM counterpart?


Yes, but I haven't made them public just yet.

http://reviews.llvm.org/D17122
http://reviews.llvm.org/D17119


http://reviews.llvm.org/D17124



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


r260555 - [Driver] Add support for Qualcomm's Kryo CPU.

2016-02-11 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Feb 11 12:09:31 2016
New Revision: 260555

URL: http://llvm.org/viewvc/llvm-project?rev=260555&view=rev
Log:
[Driver] Add support for Qualcomm's Kryo CPU.

http://reviews.llvm.org/D17124

Modified:
cfe/trunk/lib/Basic/Targets.cpp
cfe/trunk/lib/Driver/Tools.cpp
cfe/trunk/test/Driver/aarch64-cpus.c
cfe/trunk/test/Preprocessor/aarch64-target-features.c

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=260555&r1=260554&r2=260555&view=diff
==
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Thu Feb 11 12:09:31 2016
@@ -5359,6 +5359,7 @@ public:
 .Cases("cortex-a53", "cortex-a57", "cortex-a72",
"cortex-a35", "exynos-m1", true)
 .Case("cyclone", true)
+.Case("kryo", true)
 .Default(false);
 return CPUKnown;
   }

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=260555&r1=260554&r2=260555&view=diff
==
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Thu Feb 11 12:09:31 2016
@@ -2125,7 +2125,8 @@ static bool DecodeAArch64Mcpu(const Driv
   std::pair Split = Mcpu.split("+");
   CPU = Split.first;
   if (CPU == "cyclone" || CPU == "cortex-a53" || CPU == "cortex-a57" ||
-  CPU == "cortex-a72" || CPU == "cortex-a35" || CPU == "exynos-m1") {
+  CPU == "cortex-a72" || CPU == "cortex-a35" || CPU == "exynos-m1" ||
+  CPU == "kryo") {
 Features.push_back("+neon");
 Features.push_back("+crc");
 Features.push_back("+crypto");

Modified: cfe/trunk/test/Driver/aarch64-cpus.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/aarch64-cpus.c?rev=260555&r1=260554&r2=260555&view=diff
==
--- cfe/trunk/test/Driver/aarch64-cpus.c (original)
+++ cfe/trunk/test/Driver/aarch64-cpus.c Thu Feb 11 12:09:31 2016
@@ -88,6 +88,18 @@
 // RUN: %clang -target arm64 -mlittle-endian -mtune=exynos-m1 -### -c %s 2>&1 
| FileCheck -check-prefix=ARM64-M1 %s
 // ARM64-M1: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "exynos-m1"
 
+// RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s
+// RUN: %clang -target aarch64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=KRYO %s
+// RUN: %clang -target aarch64 -mtune=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=KRYO %s
+// RUN: %clang -target aarch64 -mlittle-endian -mtune=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=KRYO %s
+// KRYO: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "kryo"
+
+// RUN: %clang -target arm64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-KRYO %s
+// RUN: %clang -target arm64 -mlittle-endian -mcpu=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-KRYO %s
+// RUN: %clang -target arm64 -mtune=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=ARM64-KRYO %s
+// RUN: %clang -target arm64 -mlittle-endian -mtune=kryo -### -c %s 2>&1 | 
FileCheck -check-prefix=ARM64-KRYO %s
+// ARM64-KRYO: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "kryo"
+
 // RUN: %clang -target aarch64_be -### -c %s 2>&1 | FileCheck 
-check-prefix=GENERIC-BE %s
 // RUN: %clang -target aarch64 -mbig-endian -### -c %s 2>&1 | FileCheck 
-check-prefix=GENERIC-BE %s
 // RUN: %clang -target aarch64_be -mbig-endian -### -c %s 2>&1 | FileCheck 
-check-prefix=GENERIC-BE %s

Modified: cfe/trunk/test/Preprocessor/aarch64-target-features.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/aarch64-target-features.c?rev=260555&r1=260554&r2=260555&view=diff
==
--- cfe/trunk/test/Preprocessor/aarch64-target-features.c (original)
+++ cfe/trunk/test/Preprocessor/aarch64-target-features.c Thu Feb 11 12:09:31 
2016
@@ -93,12 +93,14 @@
 // RUN: %clang -target aarch64 -mcpu=cortex-a57 -### -c %s 2>&1 | FileCheck 
-check-prefix=CHECK-MCPU-A57 %s
 // RUN: %clang -target aarch64 -mcpu=cortex-a72 -### -c %s 2>&1 | FileCheck 
-check-prefix=CHECK-MCPU-A72 %s
 // RUN: %clang -target aarch64 -mcpu=exynos-m1 -### -c %s 2>&1 | FileCheck 
-check-prefix=CHECK-MCPU-M1 %s
+// RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck 
-check-prefix=CHECK-MCPU-KRYO %s
 // CHECK-MCPU-CYCLONE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" 
"-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" 
"-target-feature" "+zcm" "-target-feature" "+zcz"
 // CHECK-MCPU-A35: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" 
"+neon" "-target-feature" "+crc" "-target-feature" "+crypto"
 // CHECK-MCPU-A53: "-cc1"{{.*

Re: [PATCH] D17124: Add driver support for Qualcomm Kryo cpu.

2016-02-11 Thread Chad Rosier via cfe-commits
mcrosier closed this revision.
mcrosier added a comment.

Committed r260555.


http://reviews.llvm.org/D17124



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


Re: [PATCH] D19827: Do not disable completely loop unroll according to optimization level.

2016-05-02 Thread Chad Rosier via cfe-commits
mcrosier added a subscriber: mcrosier.
mcrosier added a comment.

I believe the LLVM blog post is in error.  Loop vectorization commonly 
generates two versions of the loop: vectorized and scalar.  The scalar loop is 
necessary to handle the case where the trip count isn't evenly divisible by the 
vectorization factor.  Therefore, it's reasonable to disable these type of 
optimizations (e.g., vectorization, unrolling) when we're optimizing for size.  
It's also reasonable to disable these optimizations at -O0.

However, I also understand the argument being made by Chandler.  Can you please 
create an LLVM patch the shows the loop unroll pass respects the equivalent 
-Os/-Oz/-O0 in LLVM IR?

I believe the first two are handled by checking Function::optForSize() and for 
the latter you can check the function for the optnone attribute.


Repository:
  rL LLVM

http://reviews.llvm.org/D19827



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


Re: [PATCH] D19827: Do not disable completely loop unroll according to optimization level.

2016-05-03 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

In http://reviews.llvm.org/D19827#419870, @mamai wrote:

> I think the blog comment is right. The pragma should make the loop unroll 
> even in /Os. I think it is essential to allow the user to optimize some 
> specific loops even if he generally wants to optimize for size the rest of 
> the code. I will add tests that show the behavior of the loop unroll pass 
> when optnone or optsize are specified.


You're correct.  No more reviewing patches after my bedtime. :)


Repository:
  rL LLVM

http://reviews.llvm.org/D19827



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


r274766 - Revert "[AArch64] Change the preferred alignment for char and short to word alignment"

2016-07-07 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Jul  7 11:37:19 2016
New Revision: 274766

URL: http://llvm.org/viewvc/llvm-project?rev=274766&view=rev
Log:
Revert "[AArch64] Change the preferred alignment for char and short to word 
alignment"

This reverts commit r273280 as the change was not properly approved.

Modified:
cfe/trunk/lib/Basic/Targets.cpp

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=274766&r1=274765&r2=274766&view=diff
==
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Thu Jul  7 11:37:19 2016
@@ -5994,7 +5994,7 @@ class AArch64leTargetInfo : public AArch
 if (getTriple().isOSBinFormatMachO())
   resetDataLayout("e-m:o-i64:64-i128:128-n32:64-S128");
 else
-  resetDataLayout("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128");
+  resetDataLayout("e-m:e-i64:64-i128:128-n32:64-S128");
   }
 
 public:
@@ -6012,7 +6012,7 @@ public:
 class AArch64beTargetInfo : public AArch64TargetInfo {
   void setDataLayout() override {
 assert(!getTriple().isOSBinFormatMachO());
-resetDataLayout("E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128");
+resetDataLayout("E-m:e-i64:64-i128:128-n32:64-S128");
   }
 
 public:


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


r274767 - Revert "[aarch64] Update datalayout for aarch64 tests"

2016-07-07 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Jul  7 11:37:21 2016
New Revision: 274767

URL: http://llvm.org/viewvc/llvm-project?rev=274767&view=rev
Log:
Revert "[aarch64] Update datalayout for aarch64 tests"

This reverts commit r273289, which was a follow to r273280, which was
reverted because the change was not properly approved.

Modified:
cfe/trunk/test/CodeGen/aarch64-type-sizes.c
cfe/trunk/test/CodeGen/target-data.c

Modified: cfe/trunk/test/CodeGen/aarch64-type-sizes.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/aarch64-type-sizes.c?rev=274767&r1=274766&r2=274767&view=diff
==
--- cfe/trunk/test/CodeGen/aarch64-type-sizes.c (original)
+++ cfe/trunk/test/CodeGen/aarch64-type-sizes.c Thu Jul  7 11:37:21 2016
@@ -1,7 +1,8 @@
-// RUN: %clang_cc1 -triple aarch64_be-none-linux-gnu -emit-llvm -w -o - %s | 
FileCheck --check-prefix=CHECK %s
+// RUN: %clang_cc1 -triple aarch64_be-none-linux-gnu -emit-llvm -w -o - %s | 
FileCheck --check-prefix=CHECK --check-prefix=CHECK-BE %s
 // char by definition has size 1
 
-// CHECK: target datalayout = 
"E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
+// CHECK-LE: target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
+// CHECK-BE: target datalayout = "E-m:e-i64:64-i128:128-n32:64-S128"
 
 int check_short() {
   return sizeof(short);
@@ -88,3 +89,4 @@ int foo() {
   return sizeof(enum Small);
 // CHECK: ret i32 4
 }
+

Modified: cfe/trunk/test/CodeGen/target-data.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/target-data.c?rev=274767&r1=274766&r2=274767&view=diff
==
--- cfe/trunk/test/CodeGen/target-data.c (original)
+++ cfe/trunk/test/CodeGen/target-data.c Thu Jul  7 11:37:21 2016
@@ -141,7 +141,7 @@
 
 // RUN: %clang_cc1 -triple arm64-unknown -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=AARCH64
-// AARCH64: target datalayout = 
"e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
+// AARCH64: target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
 
 // RUN: %clang_cc1 -triple thumb-unknown-gnueabi -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=THUMB


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


r274791 - [AArch64] Change the preferred alignment for char and short.

2016-07-07 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Jul  7 15:02:25 2016
New Revision: 274791

URL: http://llvm.org/viewvc/llvm-project?rev=274791&view=rev
Log:
[AArch64] Change the preferred alignment for char and short.

This reinstates commits r273280 and r273289.

Original Review: http://reviews.llvm.org/D21414.

Modified:
cfe/trunk/lib/Basic/Targets.cpp
cfe/trunk/test/CodeGen/aarch64-type-sizes.c
cfe/trunk/test/CodeGen/target-data.c

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=274791&r1=274790&r2=274791&view=diff
==
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Thu Jul  7 15:02:25 2016
@@ -5994,7 +5994,7 @@ class AArch64leTargetInfo : public AArch
 if (getTriple().isOSBinFormatMachO())
   resetDataLayout("e-m:o-i64:64-i128:128-n32:64-S128");
 else
-  resetDataLayout("e-m:e-i64:64-i128:128-n32:64-S128");
+  resetDataLayout("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128");
   }
 
 public:
@@ -6012,7 +6012,7 @@ public:
 class AArch64beTargetInfo : public AArch64TargetInfo {
   void setDataLayout() override {
 assert(!getTriple().isOSBinFormatMachO());
-resetDataLayout("E-m:e-i64:64-i128:128-n32:64-S128");
+resetDataLayout("E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128");
   }
 
 public:

Modified: cfe/trunk/test/CodeGen/aarch64-type-sizes.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/aarch64-type-sizes.c?rev=274791&r1=274790&r2=274791&view=diff
==
--- cfe/trunk/test/CodeGen/aarch64-type-sizes.c (original)
+++ cfe/trunk/test/CodeGen/aarch64-type-sizes.c Thu Jul  7 15:02:25 2016
@@ -1,8 +1,7 @@
-// RUN: %clang_cc1 -triple aarch64_be-none-linux-gnu -emit-llvm -w -o - %s | 
FileCheck --check-prefix=CHECK --check-prefix=CHECK-BE %s
+// RUN: %clang_cc1 -triple aarch64_be-none-linux-gnu -emit-llvm -w -o - %s | 
FileCheck --check-prefix=CHECK %s
 // char by definition has size 1
 
-// CHECK-LE: target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
-// CHECK-BE: target datalayout = "E-m:e-i64:64-i128:128-n32:64-S128"
+// CHECK: target datalayout = 
"E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
 
 int check_short() {
   return sizeof(short);
@@ -89,4 +88,3 @@ int foo() {
   return sizeof(enum Small);
 // CHECK: ret i32 4
 }
-

Modified: cfe/trunk/test/CodeGen/target-data.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/target-data.c?rev=274791&r1=274790&r2=274791&view=diff
==
--- cfe/trunk/test/CodeGen/target-data.c (original)
+++ cfe/trunk/test/CodeGen/target-data.c Thu Jul  7 15:02:25 2016
@@ -141,7 +141,7 @@
 
 // RUN: %clang_cc1 -triple arm64-unknown -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=AARCH64
-// AARCH64: target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
+// AARCH64: target datalayout = 
"e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
 
 // RUN: %clang_cc1 -triple thumb-unknown-gnueabi -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=THUMB


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


Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2016-01-05 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

Ping.


http://reviews.llvm.org/D15195



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


r256937 - [Driver] Add support for -fno-builtin-foo options.

2016-01-06 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Wed Jan  6 08:35:46 2016
New Revision: 256937

URL: http://llvm.org/viewvc/llvm-project?rev=256937&view=rev
Log:
[Driver] Add support for -fno-builtin-foo options.

Addresses PR4941 and rdar://6756912.
http://reviews.llvm.org/D15195

Modified:
cfe/trunk/include/clang/Basic/Builtins.h
cfe/trunk/include/clang/Basic/LangOptions.h
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/include/clang/Frontend/CodeGenOptions.h
cfe/trunk/lib/Basic/Builtins.cpp
cfe/trunk/lib/Basic/LangOptions.cpp
cfe/trunk/lib/CodeGen/BackendUtil.cpp
cfe/trunk/lib/CodeGen/CGCall.cpp
cfe/trunk/lib/CodeGen/CGVTables.cpp
cfe/trunk/lib/CodeGen/CodeGenModule.cpp
cfe/trunk/lib/CodeGen/CodeGenModule.h
cfe/trunk/lib/Driver/Tools.cpp
cfe/trunk/lib/Frontend/CodeGenOptions.cpp
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
cfe/trunk/test/CodeGen/2007-04-14-FNoBuiltin.c
cfe/trunk/test/CodeGen/libcalls-complex.c
cfe/trunk/test/CodeGen/libcalls-fno-builtin.c
cfe/trunk/test/CodeGen/nobuiltin.c
cfe/trunk/test/Sema/implicit-builtin-freestanding.c

Modified: cfe/trunk/include/clang/Basic/Builtins.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Builtins.h?rev=256937&r1=256936&r2=256937&view=diff
==
--- cfe/trunk/include/clang/Basic/Builtins.h (original)
+++ cfe/trunk/include/clang/Basic/Builtins.h Wed Jan  6 08:35:46 2016
@@ -192,6 +192,10 @@ public:
   /// for AuxTarget).
   unsigned getAuxBuiltinID(unsigned ID) const { return ID - TSRecords.size(); }
 
+  /// Returns true if this is a libc/libm function without the '__builtin_'
+  /// prefix.
+  static bool isBuiltinFunc(const char *Name);
+
 private:
   const Info &getRecord(unsigned ID) const;
 

Modified: cfe/trunk/include/clang/Basic/LangOptions.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=256937&r1=256936&r2=256937&view=diff
==
--- cfe/trunk/include/clang/Basic/LangOptions.h (original)
+++ cfe/trunk/include/clang/Basic/LangOptions.h Wed Jan  6 08:35:46 2016
@@ -109,6 +109,9 @@ public:
   /// \brief Options for parsing comments.
   CommentOptions CommentOpts;
 
+  /// \brief A list of all -fno-builtin-* function names (e.g., memset).
+  std::vector NoBuiltinFuncs;
+
   /// \brief Triples of the OpenMP targets that the host code codegen should
   /// take into account in order to generate accurate offloading descriptors.
   std::vector OMPTargetTriples;
@@ -142,6 +145,10 @@ public:
   /// \brief Reset all of the options that are not considered when building a
   /// module.
   void resetNonModularOptions();
+
+  /// \brief Is this a libc/libm function that is no longer recognized as a
+  /// builtin because a -fno-builtin-* option has been specified?
+  bool isNoBuiltinFunc(const char *Name) const;
 };
 
 /// \brief Floating point control options

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=256937&r1=256936&r2=256937&view=diff
==
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Wed Jan  6 08:35:46 2016
@@ -814,7 +814,7 @@ def fno_blocks : Flag<["-"], "fno-blocks
 def fno_borland_extensions : Flag<["-"], "fno-borland-extensions">, 
Group;
 def fno_builtin : Flag<["-"], "fno-builtin">, Group, 
Flags<[CC1Option]>,
   HelpText<"Disable implicit builtin knowledge of functions">;
-def fno_builtin_ : Joined<["-"], "fno-builtin-">, Group,
+def fno_builtin_ : Joined<["-"], "fno-builtin-">, Group, 
Flags<[CC1Option]>,
   HelpText<"Disable implicit builtin knowledge of a specific function">;
 def fno_math_builtin : Flag<["-"], "fno-math-builtin">, Group, 
Flags<[CC1Option]>,
   HelpText<"Disable implicit builtin knowledge of math functions">;

Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.h?rev=256937&r1=256936&r2=256937&view=diff
==
--- cfe/trunk/include/clang/Frontend/CodeGenOptions.h (original)
+++ cfe/trunk/include/clang/Frontend/CodeGenOptions.h Wed Jan  6 08:35:46 2016
@@ -218,6 +218,9 @@ public:
   /// Set of sanitizer checks that trap rather than diagnose.
   SanitizerSet SanitizeTrap;
 
+  /// \brief A list of all -fno-builtin-* function names (e.g., memset).
+  std::vector NoBuiltinFuncs;
+
 public:
   // Define accessors/mutators for code generation options of enumeration type.
 #define CODEGENOPT(Name, Bits, Default)
@@ -227,6 +230,14 @@ public:
 #include "clang/Frontend/CodeGenOptions.def"
 
   CodeGenOptions();
+
+  /// \brief Is this a libc/libm function that is no longer recogni

Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2016-01-06 Thread Chad Rosier via cfe-commits
mcrosier closed this revision.
mcrosier added a comment.

Committed in r256937.  Thanks, Bob.


http://reviews.llvm.org/D15195



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


Re: [PATCH] D15829: [PGO] Clang Option that enables IR level PGO instrumentation

2016-01-22 Thread Chad Rosier via cfe-commits
mcrosier added a subscriber: mcrosier.
mcrosier added a comment.

Would it make sense to include an additional test (in test/Driver) that shows 
the -fprofile-ir-instr option being passed from the driver to the frontend? 
Such a test case would land in clang_f_opt.c, which has many examples.



Comment at: lib/Driver/Tools.cpp:3279
@@ -3278,1 +3278,3 @@
+
+  Args.AddAllArgs(CmdArgs, options::OPT_fprofile_ir_instr);
 }

I don't think AddAllArgs is what you really want.  What if the user specifies 
the option twice?  Do we really want to pass the flag from the driver to the 
front-end twice?  Also, should we warn if the option is passed twice?

I also think some of the logic in CompilerInvocation should land here...  see 
comments below.


Comment at: lib/Frontend/CompilerInvocation.cpp:482
@@ +481,3 @@
+  Opts.ProfileIRInstr = Args.hasArg(OPT_fprofile_ir_instr) &&
+(Args.hasArg(OPT_fprofile_instr_generate) ||
+ Args.hasArg(OPT_fprofile_instr_generate_EQ) ||

IIRC, the general practice is to put this type of logic in the driver.  
Specifically, in Driver.cpp include something like

if (Args.hasArg(OPT_fprofile_ir_instr) &&
(Args.hasArg(OPT_fprofile_instr_generate) ||
 Args.hasArg(OPT_fprofile_instr_generate_EQ) ||
 Args.hasArg(OPT_fprofile_instr_use_EQ)))
  // Add -fprofile_ir_instr flag




http://reviews.llvm.org/D15829



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


Re: [PATCH] D15829: [PGO] Clang Option that enables IR level PGO instrumentation

2016-01-22 Thread Chad Rosier via cfe-commits
mcrosier added inline comments.


Comment at: lib/Driver/Tools.cpp:3279
@@ -3278,1 +3278,3 @@
+
+  Args.AddAllArgs(CmdArgs, options::OPT_fprofile_ir_instr);
 }

silvas wrote:
> xur wrote:
> > mcrosier wrote:
> > > I don't think AddAllArgs is what you really want.  What if the user 
> > > specifies the option twice?  Do we really want to pass the flag from the 
> > > driver to the front-end twice?  Also, should we warn if the option is 
> > > passed twice?
> > > 
> > > I also think some of the logic in CompilerInvocation should land here...  
> > > see comments below.
> > Thanks for pointing thi out. What about add a guard, like:
> > -  Args.AddAllArgs(CmdArgs, options::OPT_fprofile_ir_instr);
> > +  if (Args.hasArg(options::OPT_fprofile_ir_instr))
> > +Args.AddAllArgs(CmdArgs, options::OPT_fprofile_ir_instr);
> > 
> > But looking at it again, I think i need to remove this stmt in the most 
> > recently patch as OPT_profile_ir_instr is now a CC1 option. it will not be 
> > seen here, right?
> > 
> > 
> > But looking at it again, I think i need to remove this stmt in the most 
> > recently patch as OPT_profile_ir_instr is now a CC1 option. it will not be 
> > seen here, right?
> 
> Yes. The patch should make no changes to lib/Driver and should require no 
> tests in test/Driver
Ah, okay.  I still think this type of complexity should land in the driver, but 
if this is a special case then just ignore my comments.


http://reviews.llvm.org/D15829



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


r258813 - [Driver] Update FIXME comment now that PR4941 has been addressed.

2016-01-26 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Jan 26 09:46:29 2016
New Revision: 258813

URL: http://llvm.org/viewvc/llvm-project?rev=258813&view=rev
Log:
[Driver] Update FIXME comment now that PR4941 has been addressed.

The actual fix should be addressed by someone who can test on Darwin.

Modified:
cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=258813&r1=258812&r2=258813&view=diff
==
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Tue Jan 26 09:46:29 2016
@@ -5474,7 +5474,7 @@ void Clang::ConstructJob(Compilation &C,
 
 // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
 //
-// FIXME: This is disabled until clang -cc1 supports -fno-builtin-foo. PR4941.
+// FIXME: Now that PR4941 has been fixed this can be enabled.
 #if 0
   if (getToolChain().getTriple().isOSDarwin() &&
   (getToolChain().getArch() == llvm::Triple::arm ||


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


r258814 - [Driver] Make sure -fno-math-builtin option is being passed by the driver.

2016-01-26 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Jan 26 09:52:05 2016
New Revision: 258814

URL: http://llvm.org/viewvc/llvm-project?rev=258814&view=rev
Log:
[Driver] Make sure -fno-math-builtin option is being passed by the driver.

Support for the -fno-math-builtin option was added in r186899.  The codegen side
is being tested in test/CodeGen/nomathbuiltin.c.  The missing part was just
passing the option through the driver.

PR26317

Modified:
cfe/trunk/lib/Driver/Tools.cpp
cfe/trunk/test/CodeGen/nomathbuiltin.c
cfe/trunk/test/Driver/clang_f_opts.c

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=258814&r1=258813&r2=258814&view=diff
==
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Tue Jan 26 09:52:05 2016
@@ -5465,12 +5465,13 @@ void Clang::ConstructJob(Compilation &C,
options::OPT_fno_apple_pragma_pack, false))
 CmdArgs.push_back("-fapple-pragma-pack");
 
+  // Process -fno-math-builtin options.
   // le32-specific flags:
   //  -fno-math-builtin: clang should not convert math builtins to intrinsics
   // by default.
-  if (getToolChain().getArch() == llvm::Triple::le32) {
+  if (Args.hasArg(options::OPT_fno_math_builtin) ||
+  getToolChain().getArch() == llvm::Triple::le32)
 CmdArgs.push_back("-fno-math-builtin");
-  }
 
 // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
 //

Modified: cfe/trunk/test/CodeGen/nomathbuiltin.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/nomathbuiltin.c?rev=258814&r1=258813&r2=258814&view=diff
==
--- cfe/trunk/test/CodeGen/nomathbuiltin.c (original)
+++ cfe/trunk/test/CodeGen/nomathbuiltin.c Tue Jan 26 09:52:05 2016
@@ -9,4 +9,3 @@ double foo(double a, double b) {
   return pow(a, b);
 // CHECK: call {{.*}}double @pow
 }
-

Modified: cfe/trunk/test/Driver/clang_f_opts.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=258814&r1=258813&r2=258814&view=diff
==
--- cfe/trunk/test/Driver/clang_f_opts.c (original)
+++ cfe/trunk/test/Driver/clang_f_opts.c Tue Jan 26 09:52:05 2016
@@ -191,6 +191,9 @@
 // RUN: %clang -### -S -fexec-charset=iso-8859-1 -o /dev/null %s 2>&1 | 
FileCheck -check-prefix=CHECK-INVALID-INPUT-CHARSET %s
 // CHECK-INVALID-INPUT-CHARSET: error: invalid value 'iso-8859-1' in 
'-fexec-charset=iso-8859-1'
 
+// RUN: %clang -### -S -fno-math-builtin %s 2>&1 | FileCheck 
-check-prefix=CHECK-NO-MATH-BUILTIN %s
+// CHECK-NO-MATH-BUILTIN: "-fno-math-builtin"
+
 // Test that we don't error on these.
 // RUN: %clang -### -S -Werror\
 // RUN: -falign-functions -falign-functions=2 -fno-align-functions\


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


r258815 - Revert "[Driver] Make sure -fno-math-builtin option is being passed by the driver."

2016-01-26 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Tue Jan 26 10:16:53 2016
New Revision: 258815

URL: http://llvm.org/viewvc/llvm-project?rev=258815&view=rev
Log:
Revert "[Driver] Make sure -fno-math-builtin option is being passed by the 
driver."

This reverts commit r258814.

Modified:
cfe/trunk/lib/Driver/Tools.cpp
cfe/trunk/test/CodeGen/nomathbuiltin.c
cfe/trunk/test/Driver/clang_f_opts.c

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=258815&r1=258814&r2=258815&view=diff
==
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Tue Jan 26 10:16:53 2016
@@ -5465,13 +5465,12 @@ void Clang::ConstructJob(Compilation &C,
options::OPT_fno_apple_pragma_pack, false))
 CmdArgs.push_back("-fapple-pragma-pack");
 
-  // Process -fno-math-builtin options.
   // le32-specific flags:
   //  -fno-math-builtin: clang should not convert math builtins to intrinsics
   // by default.
-  if (Args.hasArg(options::OPT_fno_math_builtin) ||
-  getToolChain().getArch() == llvm::Triple::le32)
+  if (getToolChain().getArch() == llvm::Triple::le32) {
 CmdArgs.push_back("-fno-math-builtin");
+  }
 
 // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
 //

Modified: cfe/trunk/test/CodeGen/nomathbuiltin.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/nomathbuiltin.c?rev=258815&r1=258814&r2=258815&view=diff
==
--- cfe/trunk/test/CodeGen/nomathbuiltin.c (original)
+++ cfe/trunk/test/CodeGen/nomathbuiltin.c Tue Jan 26 10:16:53 2016
@@ -9,3 +9,4 @@ double foo(double a, double b) {
   return pow(a, b);
 // CHECK: call {{.*}}double @pow
 }
+

Modified: cfe/trunk/test/Driver/clang_f_opts.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=258815&r1=258814&r2=258815&view=diff
==
--- cfe/trunk/test/Driver/clang_f_opts.c (original)
+++ cfe/trunk/test/Driver/clang_f_opts.c Tue Jan 26 10:16:53 2016
@@ -191,9 +191,6 @@
 // RUN: %clang -### -S -fexec-charset=iso-8859-1 -o /dev/null %s 2>&1 | 
FileCheck -check-prefix=CHECK-INVALID-INPUT-CHARSET %s
 // CHECK-INVALID-INPUT-CHARSET: error: invalid value 'iso-8859-1' in 
'-fexec-charset=iso-8859-1'
 
-// RUN: %clang -### -S -fno-math-builtin %s 2>&1 | FileCheck 
-check-prefix=CHECK-NO-MATH-BUILTIN %s
-// CHECK-NO-MATH-BUILTIN: "-fno-math-builtin"
-
 // Test that we don't error on these.
 // RUN: %clang -### -S -Werror\
 // RUN: -falign-functions -falign-functions=2 -fno-align-functions\


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


Re: r258815 - Revert "[Driver] Make sure -fno-math-builtin option is being passed by the driver."

2016-01-26 Thread Chad Rosier via cfe-commits
All,
In r258814 I upgraded the -fno-math-builtin option from a cc1 only option
to a full blown compiler option.  However, after a bit of searching I
can't seem to find documentation of this actually being a supported option
by gcc.  Therefore, I reverted the change.  I can see the potential
utility of the option, but I don't think we should add new options (that
must be supported for all of eternity) unless they really are necessary.

PR26317 should be addressed by marking the -fno-math-builtin with the
HelpHidden flag, so as to not confuse the users of clang.

Sorry for the noise..

 Chad

> Author: mcrosier
> Date: Tue Jan 26 10:16:53 2016
> New Revision: 258815
>
> URL: http://llvm.org/viewvc/llvm-project?rev=258815&view=rev
> Log:
> Revert "[Driver] Make sure -fno-math-builtin option is being passed by the
> driver."
>
> This reverts commit r258814.
>
> Modified:
> cfe/trunk/lib/Driver/Tools.cpp
> cfe/trunk/test/CodeGen/nomathbuiltin.c
> cfe/trunk/test/Driver/clang_f_opts.c
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=258815&r1=258814&r2=258815&view=diff
> ==
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Tue Jan 26 10:16:53 2016
> @@ -5465,13 +5465,12 @@ void Clang::ConstructJob(Compilation &C,
> options::OPT_fno_apple_pragma_pack, false))
>  CmdArgs.push_back("-fapple-pragma-pack");
>
> -  // Process -fno-math-builtin options.
>// le32-specific flags:
>//  -fno-math-builtin: clang should not convert math builtins to
> intrinsics
>// by default.
> -  if (Args.hasArg(options::OPT_fno_math_builtin) ||
> -  getToolChain().getArch() == llvm::Triple::le32)
> +  if (getToolChain().getArch() == llvm::Triple::le32) {
>  CmdArgs.push_back("-fno-math-builtin");
> +  }
>
>  // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
>  //
>
> Modified: cfe/trunk/test/CodeGen/nomathbuiltin.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/nomathbuiltin.c?rev=258815&r1=258814&r2=258815&view=diff
> ==
> --- cfe/trunk/test/CodeGen/nomathbuiltin.c (original)
> +++ cfe/trunk/test/CodeGen/nomathbuiltin.c Tue Jan 26 10:16:53 2016
> @@ -9,3 +9,4 @@ double foo(double a, double b) {
>return pow(a, b);
>  // CHECK: call {{.*}}double @pow
>  }
> +
>
> Modified: cfe/trunk/test/Driver/clang_f_opts.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=258815&r1=258814&r2=258815&view=diff
> ==
> --- cfe/trunk/test/Driver/clang_f_opts.c (original)
> +++ cfe/trunk/test/Driver/clang_f_opts.c Tue Jan 26 10:16:53 2016
> @@ -191,9 +191,6 @@
>  // RUN: %clang -### -S -fexec-charset=iso-8859-1 -o /dev/null %s 2>&1 |
> FileCheck -check-prefix=CHECK-INVALID-INPUT-CHARSET %s
>  // CHECK-INVALID-INPUT-CHARSET: error: invalid value 'iso-8859-1' in
> '-fexec-charset=iso-8859-1'
>
> -// RUN: %clang -### -S -fno-math-builtin %s 2>&1 |
> FileCheck -check-prefix=CHECK-NO-MATH-BUILTIN %s
> -// CHECK-NO-MATH-BUILTIN: "-fno-math-builtin"
> -
>  // Test that we don't error on these.
>  // RUN: %clang -### -S -Werror
> \
>  // RUN: -falign-functions -falign-functions=2 -fno-align-functions
> \
>
>
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>


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


Re: [PATCH] D16559: [CUDA] Add -fcuda-allow-variadic-functions.

2016-01-26 Thread Chad Rosier via cfe-commits
mcrosier added a subscriber: mcrosier.


Comment at: cfe/trunk/include/clang/Driver/CC1Options.td:681
@@ -680,1 +680,3 @@
   HelpText<"Enable function overloads based on CUDA target attributes.">;
+def fcuda_allow_variadic_functions : Flag<["-"], 
"fcuda-allow-variadic-functions">,
+  HelpText<"Allow variadic functions in CUDA device code.">;

AFAICT, these are customer facing flags, correct?  If so, shouldn't these 
options be hidden from the help (via the HelpHidden flag AFAICT)?


Repository:
  rL LLVM

http://reviews.llvm.org/D16559



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


Re: [PATCH] D16559: [CUDA] Add -fcuda-allow-variadic-functions.

2016-01-26 Thread Chad Rosier via cfe-commits
mcrosier added inline comments.


Comment at: cfe/trunk/include/clang/Driver/CC1Options.td:681
@@ -680,1 +680,3 @@
   HelpText<"Enable function overloads based on CUDA target attributes.">;
+def fcuda_allow_variadic_functions : Flag<["-"], 
"fcuda-allow-variadic-functions">,
+  HelpText<"Allow variadic functions in CUDA device code.">;

mcrosier wrote:
> AFAICT, these are customer facing flags, correct?  If so, shouldn't these 
> options be hidden from the help (via the HelpHidden flag AFAICT)?
This might cause issues such as those reported in PR26317 and PR26318.


Repository:
  rL LLVM

http://reviews.llvm.org/D16559



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


Re: [PATCH] D16559: [CUDA] Add -fcuda-allow-variadic-functions.

2016-01-26 Thread Chad Rosier via cfe-commits
mcrosier added inline comments.


Comment at: cfe/trunk/include/clang/Driver/CC1Options.td:681
@@ -680,1 +680,3 @@
   HelpText<"Enable function overloads based on CUDA target attributes.">;
+def fcuda_allow_variadic_functions : Flag<["-"], 
"fcuda-allow-variadic-functions">,
+  HelpText<"Allow variadic functions in CUDA device code.">;

tra wrote:
> mcrosier wrote:
> > mcrosier wrote:
> > > AFAICT, these are customer facing flags, correct?  If so, shouldn't these 
> > > options be hidden from the help (via the HelpHidden flag AFAICT)?
> > This might cause issues such as those reported in PR26317 and PR26318.
> These are cc1-only options and do *not* show up in top-level --help.
> 
Ah, yes.  You are correct.


Repository:
  rL LLVM

http://reviews.llvm.org/D16559



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


r253914 - Fix a warning about commas at the end of enumerator lists.

2015-11-23 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Mon Nov 23 15:05:04 2015
New Revision: 253914

URL: http://llvm.org/viewvc/llvm-project?rev=253914&view=rev
Log:
Fix a warning about commas at the end of enumerator lists.

Modified:
cfe/trunk/include/clang-c/Index.h

Modified: cfe/trunk/include/clang-c/Index.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=253914&r1=253913&r2=253914&view=diff
==
--- cfe/trunk/include/clang-c/Index.h (original)
+++ cfe/trunk/include/clang-c/Index.h Mon Nov 23 15:05:04 2015
@@ -2481,7 +2481,7 @@ enum CXVisibilityKind {
   /** \brief Symbol seen by the linker but resolves to a symbol inside this 
object. */
   CXVisibility_Protected,
   /** \brief Symbol seen by the linker and acts like a normal symbol. */
-  CXVisibility_Default,
+  CXVisibility_Default
 };
 
 CINDEX_LINKAGE enum CXVisibilityKind clang_getCursorVisibility(CXCursor 
cursor);


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


[PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2015-12-03 Thread Chad Rosier via cfe-commits
mcrosier created this revision.
mcrosier added reviewers: majnemer, doug.gregor, ddunbar, chandlerc, 
bob.wilson, rnk, krememek.
mcrosier added a subscriber: cfe-commits.

The changes adds support for -fno-builtin-foo options.

This addresses PR4941 and rdar://6756912.

Please take a look.

 Chad

I have no idea who would be best to review this patch, so I've added those that 
I thought might be interested.  Feel free to remove yourself if that's not the 
case.

http://reviews.llvm.org/D15195

Files:
  include/clang/Basic/Builtins.h
  include/clang/Basic/LangOptions.h
  include/clang/Driver/Options.td
  include/clang/Frontend/CodeGenOptions.h
  lib/Basic/Builtins.cpp
  lib/Basic/LangOptions.cpp
  lib/CodeGen/BackendUtil.cpp
  lib/CodeGen/CGCall.cpp
  lib/CodeGen/CGVTables.cpp
  lib/CodeGen/CodeGenModule.cpp
  lib/CodeGen/CodeGenModule.h
  lib/Driver/Tools.cpp
  lib/Frontend/CodeGenOptions.cpp
  lib/Frontend/CompilerInvocation.cpp
  test/CodeGen/2007-04-14-FNoBuiltin.c
  test/CodeGen/libcalls-complex.c
  test/CodeGen/libcalls-fno-builtin.c
  test/CodeGen/nobuiltin.c
  test/Sema/implicit-builtin-freestanding.c

Index: test/Sema/implicit-builtin-freestanding.c
===
--- test/Sema/implicit-builtin-freestanding.c
+++ test/Sema/implicit-builtin-freestanding.c
@@ -1,4 +1,6 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -ffreestanding %s
+// RUN: %clang_cc1 -fsyntax-only -verify -fno-builtin %s
+// RUN: %clang_cc1 -fsyntax-only -verify -fno-builtin-malloc %s
 // expected-no-diagnostics
 
 int malloc(int a) { return a; }
Index: test/CodeGen/nobuiltin.c
===
--- test/CodeGen/nobuiltin.c
+++ test/CodeGen/nobuiltin.c
@@ -1,8 +1,17 @@
 // RUN: %clang_cc1 -fno-builtin -O1 -S -o - %s | FileCheck %s
+// RUN: %clang_cc1 -fno-builtin-memset -O1 -S -o - %s | FileCheck -check-prefix=MEMSET %s
 
 void PR13497() {
   char content[2];
   // make sure we don't optimize this call to strcpy()
   // CHECK: __strcpy_chk
   __builtin___strcpy_chk(content, "", 1);
 }
+
+void PR4941(char *s) {
+  // Make sure we don't optimize this loop to a memset().
+  // MEMSET-LABEL: PR4941:
+  // MEMSET-NOT: memset
+  for (unsigned i = 0; i < 8192; ++i)
+s[i] = 0;
+}
Index: test/CodeGen/libcalls-fno-builtin.c
===
--- test/CodeGen/libcalls-fno-builtin.c
+++ test/CodeGen/libcalls-fno-builtin.c
@@ -1,4 +1,11 @@
 // RUN: %clang_cc1 -S -O3 -fno-builtin -o - %s | FileCheck %s
+// RUN: %clang_cc1 -S -O3 -fno-builtin-ceil -fno-builtin-copysign -fno-builtin-cos \
+// RUN:  -fno-builtin-fabs -fno-builtin-floor -fno-builtin-strcat -fno-builtin-strncat \
+// RUN:  -fno-builtin-strchr -fno-builtin-strrchr -fno-builtin-strcmp -fno-builtin-strncmp \
+// RUN:  -fno-builtin-strcpy -fno-builtin-stpcpy -fno-builtin-strncpy -fno-builtin-strlen \
+// RUN:  -fno-builtin-strpbrk -fno-builtin-strspn -fno-builtin-strtod -fno-builtin-strtof \
+// RUN:  -fno-builtin-strtold -fno-builtin-strtol -fno-builtin-strtoll -fno-builtin-strtoul \
+// RUN:  -fno-builtin-strtoull -o - %s | FileCheck %s
 // rdar://10551066
 
 typedef __SIZE_TYPE__ size_t;
Index: test/CodeGen/libcalls-complex.c
===
--- test/CodeGen/libcalls-complex.c
+++ test/CodeGen/libcalls-complex.c
@@ -1,4 +1,7 @@
 // RUN: %clang_cc1 -fno-builtin -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
+// RUN: %clang_cc1 -fno-builtin-crealf -fno-builtin-creal -fno-builtin-creall \
+// RUN:  -fno-builtin-cimagf  -fno-builtin-cimag -fno-builtin-cimagl -emit-llvm \
+// RUN:  -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
 // RUN: %clang_cc1 -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-NO %s
 
 extern float crealf(float _Complex);
Index: test/CodeGen/2007-04-14-FNoBuiltin.c
===
--- test/CodeGen/2007-04-14-FNoBuiltin.c
+++ test/CodeGen/2007-04-14-FNoBuiltin.c
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -emit-llvm %s -O2 -fno-builtin -o - | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm %s -O2 -fno-builtin-printf -o - | FileCheck %s
 // Check that -fno-builtin is honored.
 
 extern int printf(const char*, ...);
Index: lib/Frontend/CompilerInvocation.cpp
===
--- lib/Frontend/CompilerInvocation.cpp
+++ lib/Frontend/CompilerInvocation.cpp
@@ -8,13 +8,14 @@
 //===--===//
 
 #include "TestModuleFileExtension.h"
-#include "clang/Frontend/CompilerInvocation.h"
+#include "clang/Basic/Builtins.h"
 #include "clang/Basic/FileManager.h"
 #include "clang/Basic/Version.h"
 #include "clang/Config/config.h"
 #include "clang/Driver/DriverDiagnostic.h"
 #include "clang/Driver/Options.h"
 #include "clang/Driver/Util.h

Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2015-12-08 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

Ping.


http://reviews.llvm.org/D15195



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


Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2015-12-14 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

In http://reviews.llvm.org/D15195#307136, @hfinkel wrote:

> Can you use a StringSet instead of a vector and avoid all (most) of the code 
> iterating over the vector of builtins being disabled?


Hi Hal,
I began converting the code to use StringSets, but I soon realized this wasn't 
as trivial of a change as one would hope.  There are number of places where the 
LangOptions and CodeGenOptions are copied (e.g., Lexer.cpp:133, 
PrettyPrinter.h:38, ModuleBuilder.cpp:66) .  Unfortunately, this copying 
requires a copy constructor for the StringSets.  I'd prefer to stick with a 
simple string vector as any code saved by not iterating over the vector is lost 
on the copy constructor implementation.  FWIW, I also don't believe this to be 
performance critical code.. Please let me know your thoughts.

Chad

Chad


http://reviews.llvm.org/D15195



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


Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2015-12-15 Thread Chad Rosier via cfe-commits
mcrosier updated this revision to Diff 42854.
mcrosier added a comment.

Remove the FIXME, per Hal and Bob's request.  I confirmed that gcc does not 
warn for invalid -fno-builtin-foo options.
Also, pass the vector by reference and insert, rather than making an 
unnecessary copy on the return in CompilerInvocation.


http://reviews.llvm.org/D15195

Files:
  include/clang/Basic/Builtins.h
  include/clang/Basic/LangOptions.h
  include/clang/Driver/Options.td
  include/clang/Frontend/CodeGenOptions.h
  lib/Basic/Builtins.cpp
  lib/Basic/LangOptions.cpp
  lib/CodeGen/BackendUtil.cpp
  lib/CodeGen/CGCall.cpp
  lib/CodeGen/CGVTables.cpp
  lib/CodeGen/CodeGenModule.cpp
  lib/CodeGen/CodeGenModule.h
  lib/Driver/Tools.cpp
  lib/Frontend/CodeGenOptions.cpp
  lib/Frontend/CompilerInvocation.cpp
  test/CodeGen/2007-04-14-FNoBuiltin.c
  test/CodeGen/libcalls-complex.c
  test/CodeGen/libcalls-fno-builtin.c
  test/CodeGen/nobuiltin.c
  test/Sema/implicit-builtin-freestanding.c

Index: test/Sema/implicit-builtin-freestanding.c
===
--- test/Sema/implicit-builtin-freestanding.c
+++ test/Sema/implicit-builtin-freestanding.c
@@ -1,4 +1,6 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -ffreestanding %s
+// RUN: %clang_cc1 -fsyntax-only -verify -fno-builtin %s
+// RUN: %clang_cc1 -fsyntax-only -verify -fno-builtin-malloc %s
 // expected-no-diagnostics
 
 int malloc(int a) { return a; }
Index: test/CodeGen/nobuiltin.c
===
--- test/CodeGen/nobuiltin.c
+++ test/CodeGen/nobuiltin.c
@@ -1,8 +1,17 @@
 // RUN: %clang_cc1 -fno-builtin -O1 -S -o - %s | FileCheck %s
+// RUN: %clang_cc1 -fno-builtin-memset -O1 -S -o - %s | FileCheck -check-prefix=MEMSET %s
 
 void PR13497() {
   char content[2];
   // make sure we don't optimize this call to strcpy()
   // CHECK: __strcpy_chk
   __builtin___strcpy_chk(content, "", 1);
 }
+
+void PR4941(char *s) {
+  // Make sure we don't optimize this loop to a memset().
+  // MEMSET-LABEL: PR4941:
+  // MEMSET-NOT: memset
+  for (unsigned i = 0; i < 8192; ++i)
+s[i] = 0;
+}
Index: test/CodeGen/libcalls-fno-builtin.c
===
--- test/CodeGen/libcalls-fno-builtin.c
+++ test/CodeGen/libcalls-fno-builtin.c
@@ -1,4 +1,11 @@
 // RUN: %clang_cc1 -S -O3 -fno-builtin -o - %s | FileCheck %s
+// RUN: %clang_cc1 -S -O3 -fno-builtin-ceil -fno-builtin-copysign -fno-builtin-cos \
+// RUN:  -fno-builtin-fabs -fno-builtin-floor -fno-builtin-strcat -fno-builtin-strncat \
+// RUN:  -fno-builtin-strchr -fno-builtin-strrchr -fno-builtin-strcmp -fno-builtin-strncmp \
+// RUN:  -fno-builtin-strcpy -fno-builtin-stpcpy -fno-builtin-strncpy -fno-builtin-strlen \
+// RUN:  -fno-builtin-strpbrk -fno-builtin-strspn -fno-builtin-strtod -fno-builtin-strtof \
+// RUN:  -fno-builtin-strtold -fno-builtin-strtol -fno-builtin-strtoll -fno-builtin-strtoul \
+// RUN:  -fno-builtin-strtoull -o - %s | FileCheck %s
 // rdar://10551066
 
 typedef __SIZE_TYPE__ size_t;
Index: test/CodeGen/libcalls-complex.c
===
--- test/CodeGen/libcalls-complex.c
+++ test/CodeGen/libcalls-complex.c
@@ -1,4 +1,7 @@
 // RUN: %clang_cc1 -fno-builtin -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
+// RUN: %clang_cc1 -fno-builtin-crealf -fno-builtin-creal -fno-builtin-creall \
+// RUN:  -fno-builtin-cimagf  -fno-builtin-cimag -fno-builtin-cimagl -emit-llvm \
+// RUN:  -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
 // RUN: %clang_cc1 -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-NO %s
 
 extern float crealf(float _Complex);
Index: test/CodeGen/2007-04-14-FNoBuiltin.c
===
--- test/CodeGen/2007-04-14-FNoBuiltin.c
+++ test/CodeGen/2007-04-14-FNoBuiltin.c
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -emit-llvm %s -O2 -fno-builtin -o - | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm %s -O2 -fno-builtin-printf -o - | FileCheck %s
 // Check that -fno-builtin is honored.
 
 extern int printf(const char*, ...);
Index: lib/Frontend/CompilerInvocation.cpp
===
--- lib/Frontend/CompilerInvocation.cpp
+++ lib/Frontend/CompilerInvocation.cpp
@@ -8,13 +8,14 @@
 //===--===//
 
 #include "TestModuleFileExtension.h"
-#include "clang/Frontend/CompilerInvocation.h"
+#include "clang/Basic/Builtins.h"
 #include "clang/Basic/FileManager.h"
 #include "clang/Basic/Version.h"
 #include "clang/Config/config.h"
 #include "clang/Driver/DriverDiagnostic.h"
 #include "clang/Driver/Options.h"
 #include "clang/Driver/Util.h"
+#include "clang/Frontend/CompilerInvocation.h"
 #include "clang/Frontend/FrontendDiagnostic.h"
 #include "clang/Frontend/LangStandard.h"
 #includ

r255915 - [x86] Filecheck is case sensitive. Capitalize directives.

2015-12-17 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Dec 17 12:54:42 2015
New Revision: 255915

URL: http://llvm.org/viewvc/llvm-project?rev=255915&view=rev
Log:
[x86] Filecheck is case sensitive.  Capitalize directives.

Modified:
cfe/trunk/test/CodeGen/avx512er-builtins.c

Modified: cfe/trunk/test/CodeGen/avx512er-builtins.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512er-builtins.c?rev=255915&r1=255914&r2=255915&view=diff
==
--- cfe/trunk/test/CodeGen/avx512er-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512er-builtins.c Thu Dec 17 12:54:42 2015
@@ -12,14 +12,14 @@ __m512d test_mm512_rsqrt28_round_pd(__m5
 }
 
 __m512d test_mm512_mask_rsqrt28_round_pd(__m512d s, __mmask8 m, __m512d a) {
-  // check-label: @test_mm512_mask_rsqrt28_round_pd
-  // check: @llvm.x86.avx512.rsqrt28.pd
+  // CHECK-LABEL: @test_mm512_mask_rsqrt28_round_pd
+  // CHECK: @llvm.x86.avx512.rsqrt28.pd
   return _mm512_mask_rsqrt28_round_pd(s, m, a, _MM_FROUND_TO_NEAREST_INT);
 }
 
 __m512d test_mm512_maskz_rsqrt28_round_pd(__mmask8 m, __m512d a) {
-  // check-label: @test_mm512_maskz_rsqrt28_round_pd
-  // check: @llvm.x86.avx512.rsqrt28.pd
+  // CHECK-LABEL: @test_mm512_maskz_rsqrt28_round_pd
+  // CHECK: @llvm.x86.avx512.rsqrt28.pd
   return _mm512_maskz_rsqrt28_round_pd(m, a, _MM_FROUND_TO_NEAREST_INT);
 }
 
@@ -30,14 +30,14 @@ __m512d test_mm512_rsqrt28_pd(__m512d a)
 }
 
 __m512d test_mm512_mask_rsqrt28_pd(__m512d s, __mmask8 m, __m512d a) {
-  // check-label: @test_mm512_mask_rsqrt28_pd
-  // check: @llvm.x86.avx512.rsqrt28.pd
+  // CHECK-LABEL: @test_mm512_mask_rsqrt28_pd
+  // CHECK: @llvm.x86.avx512.rsqrt28.pd
   return _mm512_mask_rsqrt28_pd(s, m, a);
 }
 
 __m512d test_mm512_maskz_rsqrt28_pd(__mmask8 m, __m512d a) {
-  // check-label: @test_mm512_maskz_rsqrt28_pd
-  // check: @llvm.x86.avx512.rsqrt28.pd
+  // CHECK-LABEL: @test_mm512_maskz_rsqrt28_pd
+  // CHECK: @llvm.x86.avx512.rsqrt28.pd
   return _mm512_maskz_rsqrt28_pd(m, a);
 }
 
@@ -78,38 +78,38 @@ __m512 test_mm512_maskz_rsqrt28_ps(__mma
 }
 
 __m128 test_mm_rsqrt28_round_ss(__m128 a, __m128 b) {
-  // check-label: @test_mm_rsqrt28_round_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_rsqrt28_round_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_rsqrt28_round_ss(a, b, _MM_FROUND_TO_NEAREST_INT);
 }
 
 __m128 test_mm_mask_rsqrt28_round_ss(__m128 s, __mmask16 m, __m128 a, __m128 
b) {
-  // check-label: @test_mm_mask_rsqrt28_round_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_mask_rsqrt28_round_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_mask_rsqrt28_round_ss(s, m, a, b, _MM_FROUND_TO_NEAREST_INT);
 }
 
 __m128 test_mm_maskz_rsqrt28_round_ss(__mmask16 m, __m128 a, __m128 b) {
-  // check-label: @test_mm_maskz_rsqrt28_round_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_maskz_rsqrt28_round_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_maskz_rsqrt28_round_ss(m, a, b, _MM_FROUND_TO_NEAREST_INT);
 }
 
 __m128 test_mm_rsqrt28_ss(__m128 a, __m128 b) {
-  // check-label: @test_mm_rsqrt28_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_rsqrt28_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_rsqrt28_ss(a, b);
 }
 
 __m128 test_mm_mask_rsqrt28_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
-  // check-label: @test_mm_mask_rsqrt28_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_mask_rsqrt28_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_mask_rsqrt28_ss(s, m, a, b);
 }
 
 __m128 test_mm_maskz_rsqrt28_ss(__mmask16 m, __m128 a, __m128 b) {
-  // check-label: @test_mm_maskz_rsqrt28_ss
-  // check: @llvm.x86.avx512.rsqrt28.ss
+  // CHECK-LABEL: @test_mm_maskz_rsqrt28_ss
+  // CHECK: @llvm.x86.avx512.rsqrt28.ss
   return _mm_maskz_rsqrt28_ss(m, a, b);
 }
 
@@ -138,14 +138,14 @@ __m512d test_mm512_rcp28_round_pd(__m512
 }
 
 __m512d test_mm512_mask_rcp28_round_pd(__m512d s, __mmask8 m, __m512d a) {
-  // check-label: @test_mm512_mask_rcp28_round_pd
-  // check: @llvm.x86.avx512.rcp28.pd
+  // CHECK-LABEL: @test_mm512_mask_rcp28_round_pd
+  // CHECK: @llvm.x86.avx512.rcp28.pd
   return _mm512_mask_rcp28_round_pd(s, m, a, _MM_FROUND_TO_NEAREST_INT);
 }
 
 __m512d test_mm512_maskz_rcp28_round_pd(__mmask8 m, __m512d a) {
-  // check-label: @test_mm512_maskz_rcp28_round_pd
-  // check: @llvm.x86.avx512.rcp28.pd
+  // CHECK-LABEL: @test_mm512_maskz_rcp28_round_pd
+  // CHECK: @llvm.x86.avx512.rcp28.pd
   return _mm512_maskz_rcp28_round_pd(m, a, _MM_FROUND_TO_NEAREST_INT);
 }
 
@@ -156,14 +156,14 @@ __m512d test_mm512_rcp28_pd(__m512d a) {
 }
 
 __m512d test_mm512_mask_rcp28_pd(__m512d s, __mmask8 m, __m512d a) {
-  // check-label: @test_mm512_mask_rcp28_pd
-  // check: @llvm.x86.avx512.rcp28.pd
+  // CHECK-LABEL: @test_mm512_mask_rcp28_pd
+  // CHECK: @llvm.x86.avx512.rcp28.pd
   return _mm512_mask_rcp28_pd(s, m, a);
 }
 
 __m5

r255916 - [x86] Filecheck is case sensitive. Capitalize directives.

2015-12-17 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Thu Dec 17 13:01:55 2015
New Revision: 255916

URL: http://llvm.org/viewvc/llvm-project?rev=255916&view=rev
Log:
[x86] Filecheck is case sensitive.  Capitalize directives.

Modified:
cfe/trunk/test/CodeGen/avx512f-builtins.c

Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=255916&r1=255915&r2=255916&view=diff
==
--- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512f-builtins.c Thu Dec 17 13:01:55 2015
@@ -772,8 +772,8 @@ __mmask16 test_mm512_mask_cmp_round_ps_m
 }
 
 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
-  // check-label: @test_mm512_cmp_ps_mask
-  // check: @llvm.x86.avx512.mask.cmp.ps.512
+  // CHECK-LABEL: @test_mm512_cmp_ps_mask
+  // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
   return _mm512_cmp_ps_mask(a, b, 0);
 }
 
@@ -796,8 +796,8 @@ __mmask8 test_mm512_mask_cmp_round_pd_ma
 }
 
 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
-  // check-label: @test_mm512_cmp_pd_mask
-  // check: @llvm.x86.avx512.mask.cmp.pd.512
+  // CHECK-LABEL: @test_mm512_cmp_pd_mask
+  // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
   return _mm512_cmp_pd_mask(a, b, 0);
 }
 


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


r256023 - Fix an unused variable warning from r256012.

2015-12-18 Thread Chad Rosier via cfe-commits
Author: mcrosier
Date: Fri Dec 18 14:08:40 2015
New Revision: 256023

URL: http://llvm.org/viewvc/llvm-project?rev=256023&view=rev
Log:
Fix an unused variable warning from r256012.

Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=256023&r1=256022&r2=256023&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Dec 18 14:08:40 2015
@@ -3444,7 +3444,7 @@ void CGDebugInfo::EmitUsingDecl(const Us
 
 void CGDebugInfo::EmitImportDecl(const ImportDecl &ID) {
   if (Module *M = ID.getImportedModule()) {
-auto Info = 
ExternalASTSource::ASTSourceDescriptor(*ID.getImportedModule());
+auto Info = ExternalASTSource::ASTSourceDescriptor(*M);
 DBuilder.createImportedDeclaration(
 getCurrentContextDescriptor(cast(ID.getDeclContext())),
 getOrCreateModuleRef(Info, DebugTypeExtRefs),


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


Re: [PATCH] D15195: PR4941: Add support for -fno-builtin-foo options.

2015-12-21 Thread Chad Rosier via cfe-commits
mcrosier added a comment.

Ping.  I promise this is fairly straight forward. :)


http://reviews.llvm.org/D15195



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


Re: [PATCH] D15749: [X86][ms-inline asm] Test case for adding support for memory operands that include structs

2015-12-23 Thread Chad Rosier via cfe-commits
mcrosier accepted this revision.
mcrosier added a comment.
This revision is now accepted and ready to land.

LGTM.


Repository:
  rL LLVM

http://reviews.llvm.org/D15749



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


[PATCH] D38863: Typos in tutorial

2017-10-13 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier closed this revision.
mcrosier added a comment.

Committed in r315652.


https://reviews.llvm.org/D38863



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


[PATCH] D45109: Remove -cc1 option "-backend-option"

2018-04-12 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier accepted this revision.
mcrosier added a comment.

SGTM!


Repository:
  rC Clang

https://reviews.llvm.org/D45109



___
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.

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 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-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] D36238: Use "foo-12345.o" instead of "foo.o-12345" as temporary file name.

2017-08-03 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

Seems reasonable to me as well..


https://reviews.llvm.org/D36238



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


[PATCH] D37106: [Driver][AArch64] Tests for rdm feature.

2017-08-24 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier created this revision.
Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson.

Clang side of https://reviews.llvm.org/D37081.

Chad


https://reviews.llvm.org/D37106

Files:
  test/Driver/aarch64-rdm.c


Index: test/Driver/aarch64-rdm.c
===
--- /dev/null
+++ test/Driver/aarch64-rdm.c
@@ -0,0 +1,9 @@
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=falkor -### -c %s 2>&1 | 
FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=thunderx2t99 -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// CHECK-RDM: "-target-feature" "+rdm"
+
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// CHECK-NORDM: "-target-feature" "-rdm"


Index: test/Driver/aarch64-rdm.c
===
--- /dev/null
+++ test/Driver/aarch64-rdm.c
@@ -0,0 +1,9 @@
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+rdm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+rdm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=falkor -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=thunderx2t99 -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// CHECK-RDM: "-target-feature" "+rdm"
+
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+nordm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+nordm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// CHECK-NORDM: "-target-feature" "-rdm"
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D37106: [Driver][AArch64] Tests for rdm feature.

2017-08-24 Thread Chad Rosier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL311660: [Driver][AArch64] Add tests for RDM feature. 
(authored by mcrosier).

Changed prior to commit:
  https://reviews.llvm.org/D37106?vs=112543&id=112559#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D37106

Files:
  cfe/trunk/test/Driver/aarch64-rdm.c


Index: cfe/trunk/test/Driver/aarch64-rdm.c
===
--- cfe/trunk/test/Driver/aarch64-rdm.c
+++ cfe/trunk/test/Driver/aarch64-rdm.c
@@ -0,0 +1,9 @@
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+rdm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=falkor -### -c %s 2>&1 | 
FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=thunderx2t99 -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// CHECK-RDM: "-target-feature" "+rdm"
+
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+nordm -### -c %s 
2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// CHECK-NORDM: "-target-feature" "-rdm"


Index: cfe/trunk/test/Driver/aarch64-rdm.c
===
--- cfe/trunk/test/Driver/aarch64-rdm.c
+++ cfe/trunk/test/Driver/aarch64-rdm.c
@@ -0,0 +1,9 @@
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+rdm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+rdm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=falkor -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=thunderx2t99 -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-RDM %s
+// CHECK-RDM: "-target-feature" "+rdm"
+
+// RUN: %clang -target aarch64-none-none-eabi -march=armv8a+nordm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// RUN: %clang -target aarch64-none-none-eabi -mcpu=generic+nordm -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-NORDM %s
+// CHECK-NORDM: "-target-feature" "-rdm"
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D37106: [Driver][AArch64] Tests for rdm feature.

2017-08-24 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D37106#851441, @SjoerdMeijer wrote:

> Thanks for fixing this.


np!  Thanks for the review!


Repository:
  rL LLVM

https://reviews.llvm.org/D37106



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


[PATCH] D45499: [Driver] Handle the default case

2018-04-10 Thread Chad Rosier via Phabricator via cfe-commits
This revision was not accepted when it landed; it landed in state "Needs 
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rC329754: [Driver] Handle the default case missed in r329748. 
(authored by mcrosier, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D45499?vs=141893&id=141899#toc

Repository:
  rC Clang

https://reviews.llvm.org/D45499

Files:
  lib/Driver/ToolChains/NaCl.cpp


Index: lib/Driver/ToolChains/NaCl.cpp
===
--- lib/Driver/ToolChains/NaCl.cpp
+++ lib/Driver/ToolChains/NaCl.cpp
@@ -316,6 +316,8 @@
 
   SmallString<128> P(D.Dir + "/../");
   switch (getTriple().getArch()) {
+  default:
+break;
   case llvm::Triple::arm:
 llvm::sys::path::append(P, "arm-nacl/include/c++/v1");
 addSystemInclude(DriverArgs, CC1Args, P.str());


Index: lib/Driver/ToolChains/NaCl.cpp
===
--- lib/Driver/ToolChains/NaCl.cpp
+++ lib/Driver/ToolChains/NaCl.cpp
@@ -316,6 +316,8 @@
 
   SmallString<128> P(D.Dir + "/../");
   switch (getTriple().getArch()) {
+  default:
+break;
   case llvm::Triple::arm:
 llvm::sys::path::append(P, "arm-nacl/include/c++/v1");
 addSystemInclude(DriverArgs, CC1Args, P.str());
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45092: [Driver] Don't forward -m[no-]unaligned-access options to GCC when assembling/linking

2018-04-11 Thread Chad Rosier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rC329810: [Driver] Don't forward -m[no-]unaligned-access 
options to GCC when… (authored by mcrosier, committed by ).
Herald added a subscriber: cfe-commits.

Repository:
  rC Clang

https://reviews.llvm.org/D45092

Files:
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/gcc_forward.c


Index: test/Driver/gcc_forward.c
===
--- test/Driver/gcc_forward.c
+++ test/Driver/gcc_forward.c
@@ -34,3 +34,9 @@
 // RUN:   | FileCheck --check-prefix=CHECK-ASM %s
 // CHECK-ASM: as
 // CHECK-ASM-NOT: "-g"
+
+// Check that we're not forwarding -mno-unaligned-access.
+// RUN: %clang -target aarch64-none-elf -mno-unaligned-access %s -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM %s
+// CHECK-ARM: gcc{{[^"]*}}"
+// CHECK-ARM-NOT: -mno-unaligned-access
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -85,6 +85,13 @@
   A->getOption().matches(options::OPT_W_Group))
 continue;
 
+  // Don't forward -mno-unaligned-access since GCC doesn't understand
+  // it and because it doesn't affect the assembly or link steps.
+  if ((isa(JA) || isa(JA)) &&
+  (A->getOption().matches(options::OPT_munaligned_access) ||
+   A->getOption().matches(options::OPT_mno_unaligned_access)))
+continue;
+
   A->render(Args, CmdArgs);
 }
   }


Index: test/Driver/gcc_forward.c
===
--- test/Driver/gcc_forward.c
+++ test/Driver/gcc_forward.c
@@ -34,3 +34,9 @@
 // RUN:   | FileCheck --check-prefix=CHECK-ASM %s
 // CHECK-ASM: as
 // CHECK-ASM-NOT: "-g"
+
+// Check that we're not forwarding -mno-unaligned-access.
+// RUN: %clang -target aarch64-none-elf -mno-unaligned-access %s -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM %s
+// CHECK-ARM: gcc{{[^"]*}}"
+// CHECK-ARM-NOT: -mno-unaligned-access
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -85,6 +85,13 @@
   A->getOption().matches(options::OPT_W_Group))
 continue;
 
+  // Don't forward -mno-unaligned-access since GCC doesn't understand
+  // it and because it doesn't affect the assembly or link steps.
+  if ((isa(JA) || isa(JA)) &&
+  (A->getOption().matches(options::OPT_munaligned_access) ||
+   A->getOption().matches(options::OPT_mno_unaligned_access)))
+continue;
+
   A->render(Args, CmdArgs);
 }
   }
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D28001: [X86] Teach Clang about -mfentry flag

2017-01-04 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added inline comments.



Comment at: include/clang/Driver/Options.td:1731
 def mno_pie_copy_relocations : Flag<["-"], "mno-pie-copy-relocations">, 
Group;
+def mfentry : Flag<["-"], "mfentry">, HelpText<"insert calls to fentry at 
function entry">, Flags<[CC1Option]>, Group;
 def mx87 : Flag<["-"], "mx87">, Group;

Should this not be in the m_x86_Features_Group since this is an x86 specific 
flag?



Comment at: test/CodeGen/fentry.c:1
+// RUN: %clang_cc1 -pg -mfentry -triple i386-unknown-unknown -emit-llvm -o - 
%s | FileCheck -check-prefix=HAS %s
+// RUN: %clang_cc1 -pg -mfentry -triple x86_64-unknown-linux-gnu -emit-llvm -o 
- %s | FileCheck -check-prefix=HAS %s

I want to say this test should be in test/Frontend directory since you're 
testing a new CC1 option.



Comment at: test/CodeGen/fentry.c:11
+
+//HAS: attributes #{{[0-9]+}} = { {{.*}}"fentry-call"="true"{{.*}} }
+//NOHAS-NOT: attributes #{{[0-9]+}} = { {{.*}}"fentry-call"{{.*}} }

I'd prefer we stick with the default CHECK and CHECK-NOT prefixes.


https://reviews.llvm.org/D28001



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


[PATCH] D28001: [X86] Teach Clang about -mfentry flag

2017-01-04 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added inline comments.



Comment at: test/CodeGen/fentry.c:11
+
+//HAS: attributes #{{[0-9]+}} = { {{.*}}"fentry-call"="true"{{.*}} }
+//NOHAS-NOT: attributes #{{[0-9]+}} = { {{.*}}"fentry-call"{{.*}} }

mcrosier wrote:
> I'd prefer we stick with the default CHECK and CHECK-NOT prefixes.
Specifically, for the first two RUN commands please use CHECK and for the 
latter two use something like NOPG-NOT.


https://reviews.llvm.org/D28001



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


[PATCH] D28400: [AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.

2017-01-06 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier created this revision.
mcrosier added reviewers: jmolloy, t.p.northover, gberry, RKSimon, rengolin.
mcrosier added a subscriber: cfe-commits.
Herald added a subscriber: aemerson.

Per the title, this patch replaces the target-specific intrinsic with a 
target-independent equivalent.

This requires the LLVM side change here: https://reviews.llvm.org/D28379.

In https://reviews.llvm.org/D28379, making the bitreverse intrinsic legal for 
AArch64 and lowering to a rbit instruction accordingly.

Chad


https://reviews.llvm.org/D28400

Files:
  lib/CodeGen/CGBuiltin.cpp
  test/CodeGen/arm_acle.c
  test/CodeGen/builtins-arm64.c


Index: test/CodeGen/builtins-arm64.c
===
--- test/CodeGen/builtins-arm64.c
+++ test/CodeGen/builtins-arm64.c
@@ -10,12 +10,12 @@
 // CHECK: call {{.*}} @llvm.thread.pointer()
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a)
 unsigned long long rbit64(unsigned long long a) {
   return __builtin_arm_rbit64(a);
 }
Index: test/CodeGen/arm_acle.c
===
--- test/CodeGen/arm_acle.c
+++ test/CodeGen/arm_acle.c
@@ -245,22 +245,22 @@
 
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i32 @llvm.aarch64.rbit.i32
+// AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
 
 // ARM-LABEL: test_rbitll
 // AArch32: call i32 @llvm.arm.rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);
 }
Index: lib/CodeGen/CGBuiltin.cpp
===
--- lib/CodeGen/CGBuiltin.cpp
+++ lib/CodeGen/CGBuiltin.cpp
@@ -5221,14 +5221,14 @@
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
   if (BuiltinID == AArch64::BI__builtin_arm_rbit64) {
 assert((getContext().getTypeSize(E->getType()) == 64) &&
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
 
   if (BuiltinID == AArch64::BI__clear_cache) {


Index: test/CodeGen/builtins-arm64.c
===
--- test/CodeGen/builtins-arm64.c
+++ test/CodeGen/builtins-arm64.c
@@ -10,12 +10,12 @@
 // CHECK: call {{.*}} @llvm.thread.pointer()
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a)
 unsigned long long rbit64(unsigned long long a) {
   return __builtin_arm_rbit64(a);
 }
Index: test/CodeGen/arm_acle.c
===
--- test/CodeGen/arm_acle.c
+++ test/CodeGen/arm_acle.c
@@ -245,22 +245,22 @@
 
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i32 @llvm.aarch64.rbit.i32
+// AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
 
 // ARM-LABEL: test_rbitll
 // AArch32: call i32 @llvm.arm.rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);
 }
Index: lib/CodeGen/CGBuiltin.cpp
===
--- lib/CodeGen/CGBuiltin.cpp
+++ lib/CodeGen/CGBuiltin.cpp
@@ -5221,14 +5221,14 @@
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, "rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
   if (BuiltinID == AArch64::BI

[PATCH] D28400: [AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.

2017-01-10 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added inline comments.



Comment at: test/CodeGen/arm_acle.c:247
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
+// AArch64: call i32 @llvm.bitreverse.i32

RKSimon wrote:
> Since you're here is it worth dealing with the AARCH32 case as well? We know 
> it works on the llvm side.
I was thinking I would commit a separate patch once this one and D28379 were 
approved.


https://reviews.llvm.org/D28400



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


[PATCH] D28400: [AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.

2017-01-10 Thread Chad Rosier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL291574: [AArch64] Use generic bitreverse intrinsic, rather 
than AArch64 specific. (authored by mcrosier).

Changed prior to commit:
  https://reviews.llvm.org/D28400?vs=83367&id=83817#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D28400

Files:
  cfe/trunk/lib/CodeGen/CGBuiltin.cpp
  cfe/trunk/test/CodeGen/arm_acle.c
  cfe/trunk/test/CodeGen/builtins-arm64.c


Index: cfe/trunk/test/CodeGen/arm_acle.c
===
--- cfe/trunk/test/CodeGen/arm_acle.c
+++ cfe/trunk/test/CodeGen/arm_acle.c
@@ -245,22 +245,22 @@
 
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i32 @llvm.aarch64.rbit.i32
+// AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
 
 // ARM-LABEL: test_rbitll
 // AArch32: call i32 @llvm.arm.rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);
 }
Index: cfe/trunk/test/CodeGen/builtins-arm64.c
===
--- cfe/trunk/test/CodeGen/builtins-arm64.c
+++ cfe/trunk/test/CodeGen/builtins-arm64.c
@@ -10,12 +10,12 @@
 // CHECK: call {{.*}} @llvm.thread.pointer()
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a)
 unsigned long long rbit64(unsigned long long a) {
   return __builtin_arm_rbit64(a);
 }
Index: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
===
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp
@@ -5226,14 +5226,14 @@
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
   if (BuiltinID == AArch64::BI__builtin_arm_rbit64) {
 assert((getContext().getTypeSize(E->getType()) == 64) &&
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, 
"rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
 
   if (BuiltinID == AArch64::BI__clear_cache) {


Index: cfe/trunk/test/CodeGen/arm_acle.c
===
--- cfe/trunk/test/CodeGen/arm_acle.c
+++ cfe/trunk/test/CodeGen/arm_acle.c
@@ -245,22 +245,22 @@
 
 // ARM-LABEL: test_rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i32 @llvm.aarch64.rbit.i32
+// AArch64: call i32 @llvm.bitreverse.i32
 uint32_t test_rbit(uint32_t t) {
   return __rbit(t);
 }
 
 // ARM-LABEL: test_rbitl
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 long test_rbitl(long t) {
   return __rbitl(t);
 }
 
 // ARM-LABEL: test_rbitll
 // AArch32: call i32 @llvm.arm.rbit
 // AArch32: call i32 @llvm.arm.rbit
-// AArch64: call i64 @llvm.aarch64.rbit.i64
+// AArch64: call i64 @llvm.bitreverse.i64
 uint64_t test_rbitll(uint64_t t) {
   return __rbitll(t);
 }
Index: cfe/trunk/test/CodeGen/builtins-arm64.c
===
--- cfe/trunk/test/CodeGen/builtins-arm64.c
+++ cfe/trunk/test/CodeGen/builtins-arm64.c
@@ -10,12 +10,12 @@
 // CHECK: call {{.*}} @llvm.thread.pointer()
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a)
 unsigned rbit(unsigned a) {
   return __builtin_arm_rbit(a);
 }
 
-// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a)
+// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a)
 unsigned long long rbit64(unsigned long long a) {
   return __builtin_arm_rbit64(a);
 }
Index: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
===
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp
@@ -5226,14 +5226,14 @@
"rbit of unusual size!");
 llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 return Builder.CreateCall(
-CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, "rbit");
+CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit");
   }
   if (BuiltinID == AArch64

[PATCH] D35465: [clang] Remove redundant check-prefix=CHECK from tests. NFC.

2017-07-17 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier accepted this revision.
mcrosier added a comment.

LGTM.


https://reviews.llvm.org/D35465



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


[PATCH] D35578: Add -fswitch-tables and -fno-switch-tables flags

2017-07-18 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

What exactly is the difference between -fno-jump-tables, -fno-switch-tables, 
and -fno-lookup-tables?


https://reviews.llvm.org/D35578



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


[PATCH] D35578: Add -fswitch-tables and -fno-switch-tables flags

2017-07-18 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D35578#813548, @sgundapa wrote:

> The switch-case statements generate two kinds of tables.
>
> 1. Jump tables
> 2. Lookup tables.
>
>   While the general assumption is that switch-case statements generate jump 
> tables, the below case generates a lookup table by late simplifycfg
>
>   int foo(int x) { switch (x) { case 0: return 9; case 1: return 20; case 2: 
> return 14; case 3: return 22; case 4: return 12; default: return 19; } } 
> generates a @switch.table.foo = private unnamed_addr constant [5 x i32] [i32 
> 9, i32 20, i32 14, i32 22, i32 12] The lookup table is an array of return 
> values as opposed to an array of pointers in jump table.


IIRC, we lower switches to a combination of binaries trees, jump tables and 
some bitmagic when there are 3 or fewer cases in the subtree.  Somewhat beside 
the point, but just a bit of clarification...  ...but before lowering the 
switch, simplifycfg may come along and introduce a lookup table if the cases 
are returning a constant value.

> The "-fno-XXX-flags" disable the generation of these tables. 
>  -fno-switch-tables implies both -fno-jump-tables and -fno-lookup-tables

Okay, now I understand the differences between the flags.

What exactly is the motivation?  I'm trying to narrow down the justification 
for adding yet more flags.


https://reviews.llvm.org/D35578



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


[PATCH] D35578: Add -fswitch-tables and -fno-switch-tables flags

2017-07-19 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D35578#813629, @Quuxplusone wrote:

> If the goal is fine-grained control over the heuristics for compiling switch 
> statements, perhaps one should enumerate all the possible ways to lower 
> switch statements --- jump-tables, lookup-tables, if-trees, if-chains, 
> (more?) --- and add a separate flag for each of them.


In general, I would argue against such an approach without good justification.  
More is not always better as exposing such fine grain control is going to place 
a maintenance burden on the compiler developers with minimal improvement from 
the users perspective.


https://reviews.llvm.org/D35578



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


[PATCH] D35578: Add -fswitch-tables and -fno-switch-tables flags

2017-07-19 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D35578#814817, @sgundapa wrote:

> > Wouldn't the fix be to make the backend deal with this, then? Either by 
> > putting the table with the function text, or or opting out of lookup 
> > tables? It seems that might be a better experience for the user.
>
> That is perfectly reasonable and in fact  i have committed a hexagon change 
> recently to that effect . The llvm flag hexagon-emi-lookup-tables controls 
> the generation of lookup table for hexagon.
>  The problem is, I don't want the users of the compiler to use a combination 
> of front end and back end flags to get the desired result.


First, command-line flags (i.e., those predicated with -mllvm) were never 
designed to be customer facing.  They have no guarantee that they will persist 
and are generally undocumented.  They're designed to be used by those working 
on LLVM to simplify tuning/testing.  Any other use is likely a misuse.

> "-fno-jump-tables -mllvm -hexagon-emit-lookup-tables=false". This could be 
> much neater with a "-fno-jump-tables -fno-lookup-tables" or better just 
> "-fno-switch-tables"

I'm still very far from convinced adding new flags and proposing that users 
switch from using the long-standing -fno-jump-tables flag to the 
-fno-switch-tables flag is the right approach.  Are you going to convince the 
GCC community to do the same?

It sounds like to me you have some cases when you do want lookup tables and 
other cases that you don't.  What exactly is the determining factor here?  
Moreover, why can't this determining factor be built into the compiler so the 
user doesn't even have to bother.  That would be a more ideal user experience.

As an alternative solution, why not just disable the transformation in 
SimplifyCFG when -fno-jump-tables is used?  The underlying issue seems to be 
the same (i.e., you want to avoid generating more relocations) and AFAICT 
that's what -fno-jump-tables is all about..  (Admittedly, I don't know the full 
history of -fno-jump-tables, so others might disagree with this suggestion.)


https://reviews.llvm.org/D35578



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


[PATCH] D35578: Add -fswitch-tables and -fno-switch-tables flags

2017-07-20 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added reviewers: echristo, ddunbar.
mcrosier added subscribers: echristo, ddunbar.
mcrosier added a comment.

Adding @echristo and @ddunbar who have been the primary owners of the driver 
for the past decade or so.


https://reviews.llvm.org/D35578



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


[PATCH] D35577: Add -flookup-tables and -fno-lookup-tables flags

2017-07-20 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added subscribers: echristo, ddunbar, mcrosier.
mcrosier added reviewers: echristo, ddunbar.
mcrosier added a comment.

Adding @echristo and @ddunbar who have been the primary owners of the driver 
for the past decade or so.


https://reviews.llvm.org/D35577



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


[PATCH] D35577: Add -flookup-tables and -fno-lookup-tables flags

2017-07-24 Thread Chad Rosier via Phabricator via cfe-commits
mcrosier added a comment.

In https://reviews.llvm.org/D35577#818936, @kparzysz wrote:

> In https://reviews.llvm.org/D35577#817944, @echristo wrote:
>
> > "Should this just be part of the tuning for the hexagon backend and not 
> > options at all"
>
>
>
>
>   I don't think we need separate options to control jump tables and lookup 
> tables: one option to enable/disable the use of memory tables would be 
> sufficient.


I don't have an objection to this direction (i.e., disable the lookup-table 
optimization when -fno-jump-tables is specified), so long as other are in 
agreement.


https://reviews.llvm.org/D35577



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