r330229 - [AAch64] Add the __ARM_FEATURE_DOTPROD macro definition
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.
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