[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-24 Thread Yueh-Ting (eop) Chen via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG6f0d0be567e8: [5/15][Clang][RISCV][NFC] Remove extra 
attribute Policy::IntrinsicWithoutMU by… (authored by eopXD).

Changed prior to commit:
  https://reviews.llvm.org/D141754?vs=491042=491626#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

Files:
  clang/include/clang/Support/RISCVVIntrinsicUtils.h
  clang/lib/Sema/SemaRISCVVectorLookup.cpp
  clang/lib/Support/RISCVVIntrinsicUtils.cpp
  clang/utils/TableGen/RISCVVEmitter.cpp

Index: clang/utils/TableGen/RISCVVEmitter.cpp
===
--- clang/utils/TableGen/RISCVVEmitter.cpp
+++ clang/utils/TableGen/RISCVVEmitter.cpp
@@ -528,8 +528,10 @@
 StringRef MaskedIRName = R->getValueAsString("MaskedIRName");
 unsigned NF = R->getValueAsInt("NF");
 
+const Policy DefaultPolicy(HasTailPolicy, HasMaskPolicy);
 SmallVector SupportedUnMaskedPolicies =
-RVVIntrinsic::getSupportedUnMaskedPolicies();
+RVVIntrinsic::getSupportedUnMaskedPolicies(HasTailPolicy,
+   HasMaskPolicy);
 SmallVector SupportedMaskedPolicies =
 RVVIntrinsic::getSupportedMaskedPolicies(HasTailPolicy, HasMaskPolicy);
 
@@ -543,13 +545,13 @@
 parsePrototypes(OverloadedSuffixProto);
 
 // Compute Builtin types
-auto Prototype =
-RVVIntrinsic::computeBuiltinTypes(BasicPrototype, /*IsMasked=*/false,
-  /*HasMaskedOffOperand=*/false, HasVL,
-  NF, UnMaskedPolicyScheme, Policy());
+auto Prototype = RVVIntrinsic::computeBuiltinTypes(
+BasicPrototype, /*IsMasked=*/false,
+/*HasMaskedOffOperand=*/false, HasVL, NF, UnMaskedPolicyScheme,
+DefaultPolicy);
 auto MaskedPrototype = RVVIntrinsic::computeBuiltinTypes(
 BasicPrototype, /*IsMasked=*/true, HasMaskedOffOperand, HasVL, NF,
-MaskedPolicyScheme, Policy());
+MaskedPolicyScheme, DefaultPolicy);
 
 // Create Intrinsics for each type and LMUL.
 for (char I : TypeRange) {
@@ -571,7 +573,7 @@
 /*IsMasked=*/false, /*HasMaskedOffOperand=*/false, HasVL,
 UnMaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
 ManualCodegen, *Types, IntrinsicTypes, RequiredFeatures, NF,
-Policy()));
+DefaultPolicy));
 if (UnMaskedPolicyScheme != PolicyScheme::SchemeNone)
   for (auto P : SupportedUnMaskedPolicies) {
 SmallVector PolicyPrototype =
@@ -597,7 +599,7 @@
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, MaskedIRName,
 /*IsMasked=*/true, HasMaskedOffOperand, HasVL, MaskedPolicyScheme,
 SupportOverloading, HasBuiltinAlias, ManualCodegen, *MaskTypes,
-IntrinsicTypes, RequiredFeatures, NF, Policy()));
+IntrinsicTypes, RequiredFeatures, NF, DefaultPolicy));
 if (MaskedPolicyScheme == PolicyScheme::SchemeNone)
   continue;
 for (auto P : SupportedMaskedPolicies) {
Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp
===
--- clang/lib/Support/RISCVVIntrinsicUtils.cpp
+++ clang/lib/Support/RISCVVIntrinsicUtils.cpp
@@ -969,34 +969,39 @@
   return NewPrototype;
 }
 
-llvm::SmallVector RVVIntrinsic::getSupportedUnMaskedPolicies() {
-  return {
-  Policy(Policy::PolicyType::Undisturbed, Policy::PolicyType::Omit), // TU
-  Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Omit)};   // TA
+llvm::SmallVector
+RVVIntrinsic::getSupportedUnMaskedPolicies(bool HasTailPolicy,
+   bool HasMaskPolicy) {
+  return {Policy(Policy::PolicyType::Undisturbed, Policy::PolicyType::Omit,
+ HasTailPolicy, HasMaskPolicy), // TU
+  Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Omit,
+ HasTailPolicy, HasMaskPolicy)}; // TA
 }
 
 llvm::SmallVector
 RVVIntrinsic::getSupportedMaskedPolicies(bool HasTailPolicy,
  bool HasMaskPolicy) {
   if (HasTailPolicy && HasMaskPolicy)
-return {Policy(Policy::PolicyType::Undisturbed,
-   Policy::PolicyType::Agnostic), // TUMA
-Policy(Policy::PolicyType::Agnostic,
-   Policy::PolicyType::Agnostic), // TAMA
-Policy(Policy::PolicyType::Undisturbed,
-   Policy::PolicyType::Undisturbed), // TUMU
-Policy(Policy::PolicyType::Agnostic,
-   Policy::PolicyType::Undisturbed)}; // TAMU
+return {
+Policy(Policy::PolicyType::Undisturbed, Policy::PolicyType::Agnostic,
+   HasTailPolicy, HasMaskPolicy), // TUMA
+

[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-23 Thread Craig Topper via Phabricator via cfe-commits
craig.topper accepted this revision.
craig.topper added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-21 Thread Kito Cheng via Phabricator via cfe-commits
kito-cheng accepted this revision.
kito-cheng added a comment.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-20 Thread Yueh-Ting (eop) Chen via Phabricator via cfe-commits
eopXD added a comment.

In D141754#4057829 , @kito-cheng 
wrote:

> Wait, I fell HasTailPolicy and HasMaskPolicy should be part of Policy object, 
> and then it's the Omit to present it's no policy.

I think the simplification here https://reviews.llvm.org/D142016#inline-1372027 
should resolve your concern.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-20 Thread Yueh-Ting (eop) Chen via Phabricator via cfe-commits
eopXD updated this revision to Diff 491042.
eopXD added a comment.

Update code.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

Files:
  clang/include/clang/Support/RISCVVIntrinsicUtils.h
  clang/lib/Sema/SemaRISCVVectorLookup.cpp
  clang/lib/Support/RISCVVIntrinsicUtils.cpp
  clang/utils/TableGen/RISCVVEmitter.cpp

Index: clang/utils/TableGen/RISCVVEmitter.cpp
===
--- clang/utils/TableGen/RISCVVEmitter.cpp
+++ clang/utils/TableGen/RISCVVEmitter.cpp
@@ -569,9 +569,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, IRName,
 /*IsMasked=*/false, /*HasMaskedOffOperand=*/false, HasVL,
-UnMaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-ManualCodegen, *Types, IntrinsicTypes, RequiredFeatures, NF,
-Policy()));
+UnMaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+SupportOverloading, HasBuiltinAlias, ManualCodegen, *Types,
+IntrinsicTypes, RequiredFeatures, NF, Policy()));
 if (UnMaskedPolicyScheme != PolicyScheme::SchemeNone)
   for (auto P : SupportedUnMaskedPolicies) {
 SmallVector PolicyPrototype =
@@ -584,9 +584,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, IRName,
 /*IsMask=*/false, /*HasMaskedOffOperand=*/false, HasVL,
-UnMaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-ManualCodegen, *PolicyTypes, IntrinsicTypes, RequiredFeatures,
-NF, P));
+UnMaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+SupportOverloading, HasBuiltinAlias, ManualCodegen,
+*PolicyTypes, IntrinsicTypes, RequiredFeatures, NF, P));
   }
 if (!HasMasked)
   continue;
@@ -596,8 +596,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, MaskedIRName,
 /*IsMasked=*/true, HasMaskedOffOperand, HasVL, MaskedPolicyScheme,
-SupportOverloading, HasBuiltinAlias, ManualCodegen, *MaskTypes,
-IntrinsicTypes, RequiredFeatures, NF, Policy()));
+HasTailPolicy, HasMaskPolicy, SupportOverloading, HasBuiltinAlias,
+ManualCodegen, *MaskTypes, IntrinsicTypes, RequiredFeatures, NF,
+Policy()));
 if (MaskedPolicyScheme == PolicyScheme::SchemeNone)
   continue;
 for (auto P : SupportedMaskedPolicies) {
@@ -610,9 +611,9 @@
   Out.push_back(std::make_unique(
   Name, SuffixStr, OverloadedName, OverloadedSuffixStr,
   MaskedIRName, /*IsMasked=*/true, HasMaskedOffOperand, HasVL,
-  MaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-  ManualCodegen, *PolicyTypes, IntrinsicTypes, RequiredFeatures, NF,
-  P));
+  MaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+  SupportOverloading, HasBuiltinAlias, ManualCodegen, *PolicyTypes,
+  IntrinsicTypes, RequiredFeatures, NF, P));
 }
   } // End for Log2LMULList
 }   // End for TypeRange
Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp
===
--- clang/lib/Support/RISCVVIntrinsicUtils.cpp
+++ clang/lib/Support/RISCVVIntrinsicUtils.cpp
@@ -847,7 +847,8 @@
StringRef NewOverloadedName,
StringRef OverloadedSuffix, StringRef IRName,
bool IsMasked, bool HasMaskedOffOperand, bool HasVL,
-   PolicyScheme Scheme, bool SupportOverloading,
+   PolicyScheme Scheme, bool HasTailPolicy,
+   bool HasMaskPolicy, bool SupportOverloading,
bool HasBuiltinAlias, StringRef ManualCodegen,
const RVVTypes ,
const std::vector ,
@@ -855,6 +856,7 @@
unsigned NF, Policy NewPolicyAttrs)
 : IRName(IRName), IsMasked(IsMasked),
   HasMaskedOffOperand(HasMaskedOffOperand), HasVL(HasVL), Scheme(Scheme),
+  HasTailPolicy(HasTailPolicy), HasMaskPolicy(HasMaskPolicy),
   SupportOverloading(SupportOverloading), HasBuiltinAlias(HasBuiltinAlias),
   ManualCodegen(ManualCodegen.str()), NF(NF), PolicyAttrs(NewPolicyAttrs) {
 
@@ -870,8 +872,8 @@
   if (!OverloadedSuffix.empty())
 OverloadedName += "_" + OverloadedSuffix.str();
 
-  updateNamesAndPolicy(IsMasked, hasPolicy(), Name, BuiltinName, OverloadedName,
-   PolicyAttrs);
+  updateNamesAndPolicy(IsMasked, hasPolicy(), HasTailPolicy, HasMaskPolicy,
+   Name, BuiltinName, OverloadedName, 

[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-20 Thread Yueh-Ting (eop) Chen via Phabricator via cfe-commits
eopXD updated this revision to Diff 491041.
eopXD marked 4 inline comments as done.
eopXD added a comment.

Address comment from Kito.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

Files:
  clang/include/clang/Support/RISCVVIntrinsicUtils.h
  clang/lib/Sema/SemaRISCVVectorLookup.cpp
  clang/lib/Support/RISCVVIntrinsicUtils.cpp
  clang/utils/TableGen/RISCVVEmitter.cpp

Index: clang/utils/TableGen/RISCVVEmitter.cpp
===
--- clang/utils/TableGen/RISCVVEmitter.cpp
+++ clang/utils/TableGen/RISCVVEmitter.cpp
@@ -569,9 +569,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, IRName,
 /*IsMasked=*/false, /*HasMaskedOffOperand=*/false, HasVL,
-UnMaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-ManualCodegen, *Types, IntrinsicTypes, RequiredFeatures, NF,
-Policy()));
+UnMaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+SupportOverloading, HasBuiltinAlias, ManualCodegen, *Types,
+IntrinsicTypes, RequiredFeatures, NF, Policy()));
 if (UnMaskedPolicyScheme != PolicyScheme::SchemeNone)
   for (auto P : SupportedUnMaskedPolicies) {
 SmallVector PolicyPrototype =
@@ -584,9 +584,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, IRName,
 /*IsMask=*/false, /*HasMaskedOffOperand=*/false, HasVL,
-UnMaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-ManualCodegen, *PolicyTypes, IntrinsicTypes, RequiredFeatures,
-NF, P));
+UnMaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+SupportOverloading, HasBuiltinAlias, ManualCodegen,
+*PolicyTypes, IntrinsicTypes, RequiredFeatures, NF, P));
   }
 if (!HasMasked)
   continue;
@@ -596,8 +596,9 @@
 Out.push_back(std::make_unique(
 Name, SuffixStr, OverloadedName, OverloadedSuffixStr, MaskedIRName,
 /*IsMasked=*/true, HasMaskedOffOperand, HasVL, MaskedPolicyScheme,
-SupportOverloading, HasBuiltinAlias, ManualCodegen, *MaskTypes,
-IntrinsicTypes, RequiredFeatures, NF, Policy()));
+HasTailPolicy, HasMaskPolicy, SupportOverloading, HasBuiltinAlias,
+ManualCodegen, *MaskTypes, IntrinsicTypes, RequiredFeatures, NF,
+Policy()));
 if (MaskedPolicyScheme == PolicyScheme::SchemeNone)
   continue;
 for (auto P : SupportedMaskedPolicies) {
@@ -610,9 +611,9 @@
   Out.push_back(std::make_unique(
   Name, SuffixStr, OverloadedName, OverloadedSuffixStr,
   MaskedIRName, /*IsMasked=*/true, HasMaskedOffOperand, HasVL,
-  MaskedPolicyScheme, SupportOverloading, HasBuiltinAlias,
-  ManualCodegen, *PolicyTypes, IntrinsicTypes, RequiredFeatures, NF,
-  P));
+  MaskedPolicyScheme, HasTailPolicy, HasMaskPolicy,
+  SupportOverloading, HasBuiltinAlias, ManualCodegen, *PolicyTypes,
+  IntrinsicTypes, RequiredFeatures, NF, P));
 }
   } // End for Log2LMULList
 }   // End for TypeRange
Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp
===
--- clang/lib/Support/RISCVVIntrinsicUtils.cpp
+++ clang/lib/Support/RISCVVIntrinsicUtils.cpp
@@ -847,7 +847,8 @@
StringRef NewOverloadedName,
StringRef OverloadedSuffix, StringRef IRName,
bool IsMasked, bool HasMaskedOffOperand, bool HasVL,
-   PolicyScheme Scheme, bool SupportOverloading,
+   PolicyScheme Scheme, bool HasTailPolicy,
+   bool HasMaskPolicy, bool SupportOverloading,
bool HasBuiltinAlias, StringRef ManualCodegen,
const RVVTypes ,
const std::vector ,
@@ -855,6 +856,7 @@
unsigned NF, Policy NewPolicyAttrs)
 : IRName(IRName), IsMasked(IsMasked),
   HasMaskedOffOperand(HasMaskedOffOperand), HasVL(HasVL), Scheme(Scheme),
+  HasTailPolicy(HasTailPolicy), HasMaskPolicy(HasMaskPolicy),
   SupportOverloading(SupportOverloading), HasBuiltinAlias(HasBuiltinAlias),
   ManualCodegen(ManualCodegen.str()), NF(NF), PolicyAttrs(NewPolicyAttrs) {
 
@@ -870,8 +872,8 @@
   if (!OverloadedSuffix.empty())
 OverloadedName += "_" + OverloadedSuffix.str();
 
-  updateNamesAndPolicy(IsMasked, hasPolicy(), Name, BuiltinName, OverloadedName,
-   PolicyAttrs);
+  updateNamesAndPolicy(IsMasked, hasPolicy(), HasTailPolicy, HasMaskPolicy,
+  

[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-17 Thread Craig Topper via Phabricator via cfe-commits
craig.topper requested changes to this revision.
craig.topper added a comment.
This revision now requires changes to proceed.

Oops I didn't mean to approve this with Kito's comments outstanding.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-17 Thread Craig Topper via Phabricator via cfe-commits
craig.topper accepted this revision.
craig.topper added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-16 Thread Kito Cheng via Phabricator via cfe-commits
kito-cheng added a comment.

Wait, I fell HasTailPolicy and HasMaskPolicy should be part of Policy object, 
and then it's the Omit to present it's no policy.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D141754: [5/15][Clang][RISCV][NFC] Remove extra attribute Policy::IntrinsicWithoutMU by reusing HasTailPolicy and HasMaskPolicy

2023-01-16 Thread Kito Cheng via Phabricator via cfe-commits
kito-cheng added inline comments.
Herald added a subscriber: luke.



Comment at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:388
+   bool HasVL, PolicyScheme Scheme, const bool HasTailPolicy,
+   const bool HasMaskPolicy, bool SupportOverloading,
bool HasBuiltinAlias, llvm::StringRef ManualCodegen,

Drop const for parameter, you don't need const qualifier for those primitive 
types on the parameter list.



Comment at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:470
+   const bool HasTailPolicy,
+   const bool HasMaskPolicy, std::string ,
+   std::string ,

Same here.



Comment at: clang/lib/Sema/SemaRISCVVectorLookup.cpp:151
+RVVTypes , bool HasPolicy, Policy PolicyAttrs,
+const bool HasTailPolicy, const bool HasMaskPolicy);
 

Ditto.



Comment at: clang/lib/Support/RISCVVIntrinsicUtils.cpp:851
+   PolicyScheme Scheme, const bool HasTailPolicy,
+   const bool HasMaskPolicy, bool SupportOverloading,
bool HasBuiltinAlias, StringRef ManualCodegen,

Ditto.



Comment at: clang/lib/Support/RISCVVIntrinsicUtils.cpp:1008
+bool IsMasked, bool HasPolicy, const bool HasTailPolicy,
+const bool HasMaskPolicy, std::string , std::string ,
+std::string , Policy ) {

Ditto.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141754/new/

https://reviews.llvm.org/D141754

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits