[clang] 1506839 - [NFC] Fixed a typo in clang help docs
Author: Jolanta Jensen Date: 2023-01-16T11:50:58Z New Revision: 15068394858e2e27bf6893bd2adb04c74b384290 URL: https://github.com/llvm/llvm-project/commit/15068394858e2e27bf6893bd2adb04c74b384290 DIFF: https://github.com/llvm/llvm-project/commit/15068394858e2e27bf6893bd2adb04c74b384290.diff LOG: [NFC] Fixed a typo in clang help docs Fixed minor typo in clang help docs. Differential Revision: https://reviews.llvm.org/D141507 Added: Modified: clang/include/clang/Driver/Options.td Removed: diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 38f2f68b93860..a163c77fdb13c 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1954,7 +1954,7 @@ def ffp_contract : Joined<["-"], "ffp-contract=">, Group, " fast (fuses across statements disregarding pragmas)" " | on (only fuses in the same statement unless dictated by pragmas)" " | off (never fuses)" - " | fast-honor-pragmas (fuses across statements unless diectated by pragmas)." + " | fast-honor-pragmas (fuses across statements unless dictated by pragmas)." " Default is 'fast' for CUDA, 'fast-honor-pragmas' for HIP, and 'on' otherwise.">, HelpText<"Form fused FP ops (e.g. FMAs)">, Values<"fast,on,off,fast-honor-pragmas">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 07df9e9 - [NFC] Minor cleanup of usage of FloatModeKind with bitmask enums
Author: Jolanta Jensen Date: 2022-07-13T20:44:06+01:00 New Revision: 07df9e918e3f6b8d99eaae0243a17e18a7bdd860 URL: https://github.com/llvm/llvm-project/commit/07df9e918e3f6b8d99eaae0243a17e18a7bdd860 DIFF: https://github.com/llvm/llvm-project/commit/07df9e918e3f6b8d99eaae0243a17e18a7bdd860.diff LOG: [NFC] Minor cleanup of usage of FloatModeKind with bitmask enums Differential Revision: https://reviews.llvm.org/D129373 Added: Modified: clang/include/clang/Basic/TargetInfo.h clang/lib/Basic/Targets/X86.h Removed: diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 0ab3e9b67dfe8..b4f3a69259fad 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -222,9 +222,7 @@ class TargetInfo : public virtual TransferrableTargetInfo, mutable VersionTuple PlatformMinVersion; unsigned HasAlignMac68kSupport : 1; - unsigned RealTypeUsesObjCFPRetMask - : llvm::BitmaskEnumDetail::bitWidth( -(int)FloatModeKind::LLVM_BITMASK_LARGEST_ENUMERATOR); + unsigned RealTypeUsesObjCFPRetMask : llvm::BitWidth; unsigned ComplexLongDoubleUsesFP2Ret : 1; unsigned HasBuiltinMSVaList : 1; @@ -893,7 +891,7 @@ class TargetInfo : public virtual TransferrableTargetInfo, /// Check whether the given real type should use the "fpret" flavor of /// Objective-C message passing on this target. bool useObjCFPRetForRealType(FloatModeKind T) const { -return RealTypeUsesObjCFPRetMask & llvm::BitmaskEnumDetail::Underlying(T); +return (int)((FloatModeKind)RealTypeUsesObjCFPRetMask & T); } /// Check whether _Complex long double should use the "fp2ret" flavor diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h index 00662517ae37c..ea98dcf42de65 100644 --- a/clang/lib/Basic/Targets/X86.h +++ b/clang/lib/Basic/Targets/X86.h @@ -421,8 +421,8 @@ class LLVM_LIBRARY_VISIBILITY X86_32TargetInfo : public X86TargetInfo { // Use fpret for all types. RealTypeUsesObjCFPRetMask = -(int)(FloatModeKind::Float | FloatModeKind::Double | - FloatModeKind::LongDouble); +(unsigned)(FloatModeKind::Float | FloatModeKind::Double | + FloatModeKind::LongDouble); // x86-32 has atomics up to 8 bytes MaxAtomicPromoteWidth = 64; @@ -701,7 +701,7 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { "64-i64:64-f80:128-n8:16:32:64-S128"); // Use fpret only for long double. -RealTypeUsesObjCFPRetMask = (int)FloatModeKind::LongDouble; +RealTypeUsesObjCFPRetMask = (unsigned)FloatModeKind::LongDouble; // Use fp2ret for _Complex long double. ComplexLongDoubleUsesFP2Ret = true; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 32aac7b - [NFC] Switch FloatModeKind enum class to use bitmask enums
Author: Jolanta Jensen Date: 2022-06-29T11:02:02+01:00 New Revision: 32aac7babfdd2a7e6d40cb186d676bef93bfc6bb URL: https://github.com/llvm/llvm-project/commit/32aac7babfdd2a7e6d40cb186d676bef93bfc6bb DIFF: https://github.com/llvm/llvm-project/commit/32aac7babfdd2a7e6d40cb186d676bef93bfc6bb.diff LOG: [NFC] Switch FloatModeKind enum class to use bitmask enums Using bitmask enums simplifies and clarifies the code. Differential Revision: https://reviews.llvm.org/D128182 Added: Modified: clang/include/clang/Basic/TargetInfo.h clang/lib/Basic/Targets/X86.h Removed: diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 3ed47559ab4d0..0ab3e9b67dfe8 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -15,6 +15,7 @@ #define LLVM_CLANG_BASIC_TARGETINFO_H #include "clang/Basic/AddressSpaces.h" +#include "clang/Basic/BitmaskEnum.h" #include "clang/Basic/CodeGenOptions.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/LangOptions.h" @@ -52,14 +53,14 @@ class MacroBuilder; namespace Builtin { struct Info; } enum class FloatModeKind { - NoFloat = 255, - Half = 0, - Float, - Double, - LongDouble, - Float128, - Ibm128, - Last = Ibm128 + NoFloat = 0, + Half = 1 << 0, + Float = 1 << 1, + Double = 1 << 2, + LongDouble = 1 << 3, + Float128 = 1 << 4, + Ibm128 = 1 << 5, + LLVM_MARK_AS_BITMASK_ENUM(Ibm128) }; /// Fields controlling how types are laid out in memory; these may need to @@ -221,7 +222,9 @@ class TargetInfo : public virtual TransferrableTargetInfo, mutable VersionTuple PlatformMinVersion; unsigned HasAlignMac68kSupport : 1; - unsigned RealTypeUsesObjCFPRetMask : (int)FloatModeKind::Last + 1; + unsigned RealTypeUsesObjCFPRetMask + : llvm::BitmaskEnumDetail::bitWidth( +(int)FloatModeKind::LLVM_BITMASK_LARGEST_ENUMERATOR); unsigned ComplexLongDoubleUsesFP2Ret : 1; unsigned HasBuiltinMSVaList : 1; @@ -890,9 +893,7 @@ class TargetInfo : public virtual TransferrableTargetInfo, /// Check whether the given real type should use the "fpret" flavor of /// Objective-C message passing on this target. bool useObjCFPRetForRealType(FloatModeKind T) const { -assert(T <= FloatModeKind::Last && - "T value is larger than RealTypeUsesObjCFPRetMask can handle"); -return RealTypeUsesObjCFPRetMask & (1 << (int)T); +return RealTypeUsesObjCFPRetMask & llvm::BitmaskEnumDetail::Underlying(T); } /// Check whether _Complex long double should use the "fp2ret" flavor diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h index 007d5c23ec4c7..78e444f4e4eb0 100644 --- a/clang/lib/Basic/Targets/X86.h +++ b/clang/lib/Basic/Targets/X86.h @@ -14,6 +14,7 @@ #define LLVM_CLANG_LIB_BASIC_TARGETS_X86_H #include "OSTargets.h" +#include "clang/Basic/BitmaskEnum.h" #include "clang/Basic/TargetInfo.h" #include "clang/Basic/TargetOptions.h" #include "llvm/ADT/Triple.h" @@ -419,8 +420,8 @@ class LLVM_LIBRARY_VISIBILITY X86_32TargetInfo : public X86TargetInfo { // Use fpret for all types. RealTypeUsesObjCFPRetMask = -((1 << (int)FloatModeKind::Float) | (1 << (int)FloatModeKind::Double) | - (1 << (int)FloatModeKind::LongDouble)); +(int)(FloatModeKind::Float | FloatModeKind::Double | + FloatModeKind::LongDouble); // x86-32 has atomics up to 8 bytes MaxAtomicPromoteWidth = 64; @@ -699,7 +700,7 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { "64-i64:64-f80:128-n8:16:32:64-S128"); // Use fpret only for long double. -RealTypeUsesObjCFPRetMask = (1 << (int)FloatModeKind::LongDouble); +RealTypeUsesObjCFPRetMask = (int)FloatModeKind::LongDouble; // Use fp2ret for _Complex long double. ComplexLongDoubleUsesFP2Ret = true; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 5830da1 - [AArch64] Define __FP_FAST_FMA[F]
Author: Jolanta Jensen Date: 2022-06-27T11:37:40+01:00 New Revision: 5830da1f8625d2bf94180df997ae78c37f378480 URL: https://github.com/llvm/llvm-project/commit/5830da1f8625d2bf94180df997ae78c37f378480 DIFF: https://github.com/llvm/llvm-project/commit/5830da1f8625d2bf94180df997ae78c37f378480.diff LOG: [AArch64] Define __FP_FAST_FMA[F] Libraries use this flag to decide whether to use the fma builtin. Author: Paul Walker Differential Revision: https://reviews.llvm.org/D127655 Added: Modified: clang/lib/Basic/Targets/AArch64.cpp clang/test/Preprocessor/init-aarch64.c Removed: diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index 38862056227f1..60ef52ac3f0dd 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -485,6 +485,10 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions , Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); + // Allow detection of fast FMA support. + Builder.defineMacro("__FP_FAST_FMA", "1"); + Builder.defineMacro("__FP_FAST_FMAF", "1"); + if (Opts.VScaleMin && Opts.VScaleMin == Opts.VScaleMax) { Builder.defineMacro("__ARM_FEATURE_SVE_BITS", Twine(Opts.VScaleMin * 128)); Builder.defineMacro("__ARM_FEATURE_SVE_VECTOR_OPERATORS"); diff --git a/clang/test/Preprocessor/init-aarch64.c b/clang/test/Preprocessor/init-aarch64.c index 66cab8b1f8d04..3c36793d824a5 100644 --- a/clang/test/Preprocessor/init-aarch64.c +++ b/clang/test/Preprocessor/init-aarch64.c @@ -104,18 +104,20 @@ // AARCH64-NEXT: #define __FLT_MIN_EXP__ (-125) // AARCH64-NEXT: #define __FLT_MIN__ 1.17549435e-38F // AARCH64-NEXT: #define __FLT_RADIX__ 2 +// AARCH64-NEXT: #define __FP_FAST_FMA 1 +// AARCH64-NEXT: #define __FP_FAST_FMAF 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 // AARCH64_CXX-NEXT: #define __GLIBCXX_BITSIZE_INT_N_0 128 // AARCH64_CXX-NEXT: #define __GLIBCXX_TYPE_INT_N_0 __int128 -// AARCH64-NEXT: #define __INT16_C_SUFFIX__ +// AARCH64-NEXT: #define __INT16_C_SUFFIX__ // AARCH64-NEXT: #define __INT16_FMTd__ "hd" // AARCH64-NEXT: #define __INT16_FMTi__ "hi" // AARCH64-NEXT: #define __INT16_MAX__ 32767 // AARCH64-NEXT: #define __INT16_TYPE__ short -// AARCH64-NEXT: #define __INT32_C_SUFFIX__ +// AARCH64-NEXT: #define __INT32_C_SUFFIX__ // AARCH64-NEXT: #define __INT32_FMTd__ "d" // AARCH64-NEXT: #define __INT32_FMTi__ "i" // AARCH64-NEXT: #define __INT32_MAX__ 2147483647 @@ -125,7 +127,7 @@ // AARCH64-NEXT: #define __INT64_FMTi__ "li" // AARCH64-NEXT: #define __INT64_MAX__ 9223372036854775807L // AARCH64-NEXT: #define __INT64_TYPE__ long int -// AARCH64-NEXT: #define __INT8_C_SUFFIX__ +// AARCH64-NEXT: #define __INT8_C_SUFFIX__ // AARCH64-NEXT: #define __INT8_FMTd__ "hhd" // AARCH64-NEXT: #define __INT8_FMTi__ "hhi" // AARCH64-NEXT: #define __INT8_MAX__ 127 @@ -253,7 +255,7 @@ // AARCH64-NEXT: #define __STDC_UTF_32__ 1 // AARCH64_C: #define __STDC_VERSION__ 201710L // AARCH64-NEXT: #define __STDC__ 1 -// AARCH64-NEXT: #define __UINT16_C_SUFFIX__ +// AARCH64-NEXT: #define __UINT16_C_SUFFIX__ // AARCH64-NEXT: #define __UINT16_FMTX__ "hX" // AARCH64-NEXT: #define __UINT16_FMTo__ "ho" // AARCH64-NEXT: #define __UINT16_FMTu__ "hu" @@ -274,7 +276,7 @@ // AARCH64-NEXT: #define __UINT64_FMTx__ "lx" // AARCH64-NEXT: #define __UINT64_MAX__ 18446744073709551615UL // AARCH64-NEXT: #define __UINT64_TYPE__ long unsigned int -// AARCH64-NEXT: #define __UINT8_C_SUFFIX__ +// AARCH64-NEXT: #define __UINT8_C_SUFFIX__ // AARCH64-NEXT: #define __UINT8_FMTX__ "hhX" // AARCH64-NEXT: #define __UINT8_FMTo__ "hho" // AARCH64-NEXT: #define __UINT8_FMTu__ "hhu" @@ -344,7 +346,7 @@ // AARCH64-NEXT: #define __UINT_LEAST8_FMTx__ "hhx" // AARCH64-NEXT: #define __UINT_LEAST8_MAX__ 255 // AARCH64-NEXT: #define __UINT_LEAST8_TYPE__ unsigned char -// AARCH64-NEXT: #define __USER_LABEL_PREFIX__ +// AARCH64-NEXT: #define __USER_LABEL_PREFIX__ // AARCH64-NEXT: #define __VERSION__ "{{.*}}" // AARCH64-NEXT: #define __WCHAR_MAX__ 4294967295U // AARCH64-NEXT: #define __WCHAR_TYPE__ unsigned int ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits