[clang] 8700bee - Revert "[15/15][Clang][RISCV][NFC] Set data member under Policy as constants"

Douglas Yung via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 24 13:01:59 PST 2023


Author: Douglas Yung
Date: 2023-01-24T12:59:15-08:00
New Revision: 8700beee9367fdf95d146c810855125a51006063

URL: https://github.com/llvm/llvm-project/commit/8700beee9367fdf95d146c810855125a51006063
DIFF: https://github.com/llvm/llvm-project/commit/8700beee9367fdf95d146c810855125a51006063.diff

LOG: Revert "[15/15][Clang][RISCV][NFC] Set data member under Policy as constants"

This reverts commit 2b807336ad385e64a7d182d5fb67bdfe449707a3.

This change is causing Windows builds to hang and out of memory errors with clang-15:
 - https://lab.llvm.org/buildbot/#/builders/17/builds/33129
 - https://lab.llvm.org/buildbot/#/builders/174/builds/17069
 - https://lab.llvm.org/buildbot/#/builders/83/builds/28484
 - https://lab.llvm.org/buildbot/#/builders/172/builds/22803
 - https://lab.llvm.org/buildbot/#/builders/216/builds/16210

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 1ae74284c4c99..fc53d70019c55 100644
--- a/clang/include/clang/Support/RISCVVIntrinsicUtils.h
+++ b/clang/include/clang/Support/RISCVVIntrinsicUtils.h
@@ -92,22 +92,15 @@ enum class TypeModifier : uint8_t {
   LLVM_MARK_AS_BITMASK_ENUM(LMUL1),
 };
 
-class Policy {
-public:
+struct Policy {
+  bool IsUnspecified = false;
   enum PolicyType {
     Undisturbed,
     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;
+  PolicyType TailPolicy = Agnostic;
+  PolicyType MaskPolicy = Agnostic;
   bool HasTailPolicy, HasMaskPolicy;
-
-public:
   Policy(bool HasTailPolicy, bool HasMaskPolicy)
       : IsUnspecified(true), HasTailPolicy(HasTailPolicy),
         HasMaskPolicy(HasMaskPolicy) {}
@@ -429,6 +422,7 @@ class RVVIntrinsic {
     return IntrinsicTypes;
   }
   Policy getPolicyAttrs() const {
+    assert(PolicyAttrs.IsUnspecified == false);
     return PolicyAttrs;
   }
   unsigned getPolicyAttrsBits() const {
@@ -437,6 +431,8 @@ 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 db78d8316c2bc..25084dd98e5c2 100644
--- a/clang/lib/Support/RISCVVIntrinsicUtils.cpp
+++ b/clang/lib/Support/RISCVVIntrinsicUtils.cpp
@@ -1017,6 +1017,7 @@ void RVVIntrinsic::updateNamesAndPolicy(bool IsMasked, bool HasPolicy,
   };
 
   if (PolicyAttrs.isUnspecified()) {
+    PolicyAttrs.IsUnspecified = false;
     if (IsMasked) {
       Name += "_m";
       if (HasPolicy)


        


More information about the cfe-commits mailing list