Author: eopXD Date: 2023-01-24T08:38:10-08:00 New Revision: 2b807336ad385e64a7d182d5fb67bdfe449707a3
URL: https://github.com/llvm/llvm-project/commit/2b807336ad385e64a7d182d5fb67bdfe449707a3 DIFF: https://github.com/llvm/llvm-project/commit/2b807336ad385e64a7d182d5fb67bdfe449707a3.diff LOG: [15/15][Clang][RISCV][NFC] Set data member under Policy as constants The object is now correct by construction. This is the 15th commit of a patch-set that aims to change the default policy for RVV intrinsics from TAMU to TAMA. Please refer to the cover letter in the 1st commit (D141573) for an overview. Depends on D141793. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D141796 Added: Modified: clang/include/clang/Support/RISCVVIntrinsicUtils.h clang/lib/Support/RISCVVIntrinsicUtils.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Support/RISCVVIntrinsicUtils.h b/clang/include/clang/Support/RISCVVIntrinsicUtils.h index fc53d70019c5..1ae74284c4c9 100644 --- a/clang/include/clang/Support/RISCVVIntrinsicUtils.h +++ b/clang/include/clang/Support/RISCVVIntrinsicUtils.h @@ -92,15 +92,22 @@ enum class TypeModifier : uint8_t { LLVM_MARK_AS_BITMASK_ENUM(LMUL1), }; -struct Policy { - bool IsUnspecified = false; +class Policy { +public: enum PolicyType { Undisturbed, Agnostic, }; - PolicyType TailPolicy = Agnostic; - PolicyType MaskPolicy = Agnostic; + +private: + const bool IsUnspecified = false; + // The default assumption for an RVV instruction is TAMA, as an undisturbed + // policy generally will affect the performance of an out-of-order core. + const PolicyType TailPolicy = Agnostic; + const PolicyType MaskPolicy = Agnostic; bool HasTailPolicy, HasMaskPolicy; + +public: Policy(bool HasTailPolicy, bool HasMaskPolicy) : IsUnspecified(true), HasTailPolicy(HasTailPolicy), HasMaskPolicy(HasMaskPolicy) {} @@ -422,7 +429,6 @@ class RVVIntrinsic { return IntrinsicTypes; } Policy getPolicyAttrs() const { - assert(PolicyAttrs.IsUnspecified == false); return PolicyAttrs; } unsigned getPolicyAttrsBits() const { @@ -431,8 +437,6 @@ class RVVIntrinsic { // The 1st bit simulates the `vma` of RVV // int PolicyAttrs = 0; - assert(PolicyAttrs.IsUnspecified == false); - if (PolicyAttrs.isTUMAPolicy()) return 2; if (PolicyAttrs.isTAMAPolicy()) diff --git a/clang/lib/Support/RISCVVIntrinsicUtils.cpp b/clang/lib/Support/RISCVVIntrinsicUtils.cpp index 25084dd98e5c..db78d8316c2b 100644 --- a/clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ b/clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -1017,7 +1017,6 @@ void RVVIntrinsic::updateNamesAndPolicy(bool IsMasked, bool HasPolicy, }; if (PolicyAttrs.isUnspecified()) { - PolicyAttrs.IsUnspecified = false; if (IsMasked) { Name += "_m"; if (HasPolicy) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits