Revert "[15/15][Clang][RISCV][NFC] Set data member under Policy as constants"
authorDouglas Yung <douglas.yung@sony.com>
Tue, 24 Jan 2023 20:59:15 +0000 (12:59 -0800)
committerDouglas Yung <douglas.yung@sony.com>
Tue, 24 Jan 2023 20:59:15 +0000 (12:59 -0800)
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

clang/include/clang/Support/RISCVVIntrinsicUtils.h
clang/lib/Support/RISCVVIntrinsicUtils.cpp

index 1ae7428..fc53d70 100644 (file)
@@ -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 @@ public:
     return IntrinsicTypes;
   }
   Policy getPolicyAttrs() const {
+    assert(PolicyAttrs.IsUnspecified == false);
     return PolicyAttrs;
   }
   unsigned getPolicyAttrsBits() const {
@@ -437,6 +431,8 @@ public:
     // The 1st bit simulates the `vma` of RVV
     // int PolicyAttrs = 0;
 
+    assert(PolicyAttrs.IsUnspecified == false);
+
     if (PolicyAttrs.isTUMAPolicy())
       return 2;
     if (PolicyAttrs.isTAMAPolicy())
index db78d83..25084dd 100644 (file)
@@ -1017,6 +1017,7 @@ void RVVIntrinsic::updateNamesAndPolicy(bool IsMasked, bool HasPolicy,
   };
 
   if (PolicyAttrs.isUnspecified()) {
+    PolicyAttrs.IsUnspecified = false;
     if (IsMasked) {
       Name += "_m";
       if (HasPolicy)