r330229 - [AAch64] Add the __ARM_FEATURE_DOTPROD macro definition

2018-04-18 Thread Junmo Park via cfe-commits
Author: flyingforyou
Date: Tue Apr 17 15:38:40 2018
New Revision: 330229

URL: http://llvm.org/viewvc/llvm-project?rev=330229&view=rev
Log:
[AAch64] Add the __ARM_FEATURE_DOTPROD macro definition

This matches what GCC does.
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/aarch64/aarch64-c.c

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


Modified:
cfe/trunk/lib/Basic/Targets/AArch64.cpp
cfe/trunk/lib/Basic/Targets/AArch64.h
cfe/trunk/test/Preprocessor/aarch64-target-features.c

Modified: cfe/trunk/lib/Basic/Targets/AArch64.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AArch64.cpp?rev=330229&r1=330228&r2=330229&view=diff
==
--- cfe/trunk/lib/Basic/Targets/AArch64.cpp (original)
+++ cfe/trunk/lib/Basic/Targets/AArch64.cpp Tue Apr 17 15:38:40 2018
@@ -193,6 +193,9 @@ void AArch64TargetInfo::getTargetDefines
   if (HasFullFP16)
Builder.defineMacro("__ARM_FEATURE_FP16_SCALAR_ARITHMETIC", "1");
 
+  if (HasDotProd)
+Builder.defineMacro("__ARM_FEATURE_DOTPROD", "1");
+
   switch (ArchKind) {
   default:
 break;
@@ -229,6 +232,7 @@ bool AArch64TargetInfo::handleTargetFeat
   Crypto = 0;
   Unaligned = 1;
   HasFullFP16 = 0;
+  HasDotProd = 0;
   ArchKind = llvm::AArch64::ArchKind::ARMV8A;
 
   for (const auto &Feature : Features) {
@@ -248,6 +252,8 @@ bool AArch64TargetInfo::handleTargetFeat
   ArchKind = llvm::AArch64::ArchKind::ARMV8_2A;
 if (Feature == "+fullfp16")
   HasFullFP16 = 1;
+if (Feature == "+dotprod")
+  HasDotProd = 1;
   }
 
   setDataLayout();

Modified: cfe/trunk/lib/Basic/Targets/AArch64.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AArch64.h?rev=330229&r1=330228&r2=330229&view=diff
==
--- cfe/trunk/lib/Basic/Targets/AArch64.h (original)
+++ cfe/trunk/lib/Basic/Targets/AArch64.h Tue Apr 17 15:38:40 2018
@@ -33,6 +33,7 @@ class LLVM_LIBRARY_VISIBILITY AArch64Tar
   unsigned Crypto;
   unsigned Unaligned;
   unsigned HasFullFP16;
+  unsigned HasDotProd;
   llvm::AArch64::ArchKind ArchKind;
 
   static const Builtin::Info BuiltinInfo[];

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=330229&r1=330228&r2=330229&view=diff
==
--- cfe/trunk/test/Preprocessor/aarch64-target-features.c (original)
+++ cfe/trunk/test/Preprocessor/aarch64-target-features.c Tue Apr 17 15:38:40 
2018
@@ -38,6 +38,7 @@
 // CHECK-NOT: __ARM_SIZEOF_MINIMAL_ENUM 1
 // CHECK-NOT: __ARM_SIZEOF_WCHAR_T 2
 // CHECK-NOT: __ARM_FEATURE_SVE
+// CHECK-NOT: __ARM_FEATURE_DOTPROD
 
 // RUN: %clang -target aarch64_be-eabi -x c -E -dM %s -o - | FileCheck %s 
-check-prefix CHECK-BIGENDIAN
 // CHECK-BIGENDIAN: __ARM_BIG_ENDIAN 1
@@ -89,6 +90,9 @@
 // RUN: %clang -target aarch64-none-linux-gnu -march=armv8-a+sve -x c -E -dM 
%s -o - | FileCheck --check-prefix=CHECK-SVE %s
 // CHECK-SVE: __ARM_FEATURE_SVE 1
 
+// RUN: %clang -target aarch64-none-linux-gnu -march=armv8.2a+dotprod -x c -E 
-dM %s -o - | FileCheck --check-prefix=CHECK-DOTPROD %s
+// CHECK-DOTPROD: __ARM_FEATURE_DOTPROD 1
+
 // RUN: %clang -target aarch64-none-linux-gnueabi -march=armv8.2a+fp16 -x c -E 
-dM %s -o - | FileCheck -match-full-lines 
--check-prefix=CHECK-FULLFP16-VECTOR-SCALAR %s
 // CHECK-FULLFP16-VECTOR-SCALAR: #define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC 1
 // CHECK-FULLFP16-VECTOR-SCALAR: #define __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 1


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


r263694 - Minor code cleanups. NFC.

2016-03-19 Thread Junmo Park via cfe-commits
Author: flyingforyou
Date: Thu Mar 17 01:41:27 2016
New Revision: 263694

URL: http://llvm.org/viewvc/llvm-project?rev=263694&view=rev
Log:
Minor code cleanups. NFC.

Modified:
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=263694&r1=263693&r2=263694&view=diff
==
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Thu Mar 17 01:41:27 2016
@@ -915,7 +915,7 @@ def fno_strict_aliasing : Flag<["-"], "f
 def fstruct_path_tbaa : Flag<["-"], "fstruct-path-tbaa">, Group;
 def fno_struct_path_tbaa : Flag<["-"], "fno-struct-path-tbaa">, Group;
 def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group;
-def fno_strict_vtable_pointers: Flag<["-"], "fno-strict-vtable-pointers">, 
+def fno_strict_vtable_pointers: Flag<["-"], "fno-strict-vtable-pointers">,
   Group;
 def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group;
 def fno_threadsafe_statics : Flag<["-"], "fno-threadsafe-statics">, 
Group,
@@ -959,7 +959,7 @@ def fobjc_gc : Flag<["-"], "fobjc-gc">,
   HelpText<"Enable Objective-C garbage collection">;
 def fobjc_legacy_dispatch : Flag<["-"], "fobjc-legacy-dispatch">, 
Group;
 def fobjc_new_property : Flag<["-"], "fobjc-new-property">, 
Group;
-def fobjc_infer_related_result_type : Flag<["-"], 
"fobjc-infer-related-result-type">, 
+def fobjc_infer_related_result_type : Flag<["-"], 
"fobjc-infer-related-result-type">,
   Group;
 def fno_objc_infer_related_result_type : Flag<["-"],
   "fno-objc-infer-related-result-type">, Group,
@@ -1053,7 +1053,7 @@ def fstrict_aliasing : Flag<["-"], "fstr
 def fstrict_enums : Flag<["-"], "fstrict-enums">, Group, 
Flags<[CC1Option]>,
   HelpText<"Enable optimizations based on the strict definition of an enum's "
"value range">;
-def fstrict_vtable_pointers: Flag<["-"], "fstrict-vtable-pointers">, 
+def fstrict_vtable_pointers: Flag<["-"], "fstrict-vtable-pointers">,
   Group, Flags<[CC1Option]>,
   HelpText<"Enable optimizations based on the strict rules for overwriting "
  "polymorphic C++ objects">;

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=263694&r1=263693&r2=263694&view=diff
==
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Thu Mar 17 01:41:27 2016
@@ -417,7 +417,7 @@ void Clang::AddPreprocessingOptions(Comp
 ++AI;
 
 if (getToolChain().getDriver().IsCLMode()) {
-  // In clang-cl mode, /Ycfoo.h means that all code up to a foo.h 
+  // In clang-cl mode, /Ycfoo.h means that all code up to a foo.h
   // include is compiled into foo.h, and everything after goes into
   // the .obj file. /Yufoo.h means that all includes prior to and including
   // foo.h are completely skipped and replaced with a use of the pch file


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