From: Zakk Chen Date: Mon, 30 May 2022 05:31:12 +0000 (-0700) Subject: [RISCV][NFC] Rename variables in rvv intrinsics related files. X-Git-Tag: upstream/15.0.7~6265 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=79e3d57f52284c7d911724ef6298f765c747c20d;p=platform%2Fupstream%2Fllvm.git [RISCV][NFC] Rename variables in rvv intrinsics related files. This patch does the same thing as D125886 did. - Use `Overloaded` rather than `Mangled`. - Use `Prototype` or `Desc` rather than `Seq`, it's not just a string sequence. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D126634 --- diff --git a/clang/include/clang/Basic/riscv_vector.td b/clang/include/clang/Basic/riscv_vector.td index 18304f5..8a1e0eb 100644 --- a/clang/include/clang/Basic/riscv_vector.td +++ b/clang/include/clang/Basic/riscv_vector.td @@ -139,7 +139,7 @@ def HasPassthruOperand : Policy<1>; def HasPolicyOperand : Policy<2>; class RVVBuiltin { + string overloaded_suffix = ""> { // Base name that will be prepended in __builtin_rvv_ and appended the // computed Suffix. string Name = NAME; @@ -148,14 +148,14 @@ class RVVBuiltin { let IRName = intrinsic_name; let MaskedIRName = intrinsic_name # "_mask"; - let MangledName = NAME; + let OverloadedName = NAME; let IntrinsicTypes = [-1, 0]; } @@ -462,29 +462,29 @@ class RVVFloatingUnaryBuiltin; class RVVConvBuiltin + string overloaded_name> : RVVBuiltin { let IntrinsicTypes = [-1, 0]; - let MangledName = mangled_name; + let OverloadedName = overloaded_name; } -class RVVConvToSignedBuiltin - : RVVConvBuiltin<"Iv", "Ivv", "xfd", mangled_name>; +class RVVConvToSignedBuiltin + : RVVConvBuiltin<"Iv", "Ivv", "xfd", overloaded_name>; -class RVVConvToUnsignedBuiltin - : RVVConvBuiltin<"Uv", "Uvv", "xfd", mangled_name>; +class RVVConvToUnsignedBuiltin + : RVVConvBuiltin<"Uv", "Uvv", "xfd", overloaded_name>; -class RVVConvToWidenSignedBuiltin - : RVVConvBuiltin<"Iw", "Iwv", "xf", mangled_name>; +class RVVConvToWidenSignedBuiltin + : RVVConvBuiltin<"Iw", "Iwv", "xf", overloaded_name>; -class RVVConvToWidenUnsignedBuiltin - : RVVConvBuiltin<"Uw", "Uwv", "xf", mangled_name>; +class RVVConvToWidenUnsignedBuiltin + : RVVConvBuiltin<"Uw", "Uwv", "xf", overloaded_name>; -class RVVConvToNarrowingSignedBuiltin - : RVVConvBuiltin<"Iv", "IvFw", "csi", mangled_name>; +class RVVConvToNarrowingSignedBuiltin + : RVVConvBuiltin<"Iv", "IvFw", "csi", overloaded_name>; -class RVVConvToNarrowingUnsignedBuiltin - : RVVConvBuiltin<"Uv", "UvFw", "csi", mangled_name>; +class RVVConvToNarrowingUnsignedBuiltin + : RVVConvBuiltin<"Uv", "UvFw", "csi", overloaded_name>; let HasMaskedOffOperand = false in { multiclass RVVSignedReductionBuiltin { @@ -516,7 +516,7 @@ multiclass RVVWidenBuiltinSet; @@ -532,7 +532,7 @@ multiclass RVVWidenWOp0BuiltinSet; @@ -1424,7 +1424,7 @@ multiclass RVVPseudoVFUnaryBuiltin { multiclass RVVPseudoVWCVTBuiltin> suffixes_prototypes> { let Name = NAME, - MangledName = MName, + OverloadedName = MName, IRName = IR, MaskedIRName = IR # "_mask", ManualCodegen = [{ @@ -1462,7 +1462,7 @@ multiclass RVVPseudoVWCVTBuiltin> suffixes_prototypes> { let Name = NAME, - MangledName = MName, + OverloadedName = MName, IRName = IR, MaskedIRName = IR # "_mask", ManualCodegen = [{ @@ -1792,7 +1792,7 @@ let HasMasked = false, MaskedPolicy = NonePolicy, // 12.16. Vector Integer Move Instructions let HasMasked = false, UnMaskedPolicy = HasPassthruOperand, MaskedPolicy = NonePolicy in { - let MangledName = "vmv_v" in { + let OverloadedName = "vmv_v" in { defm vmv_v : RVVOutBuiltinSet<"vmv_v_v", "csil", [["v", "Uv", "UvUv"]]>; defm vmv_v : RVVOutBuiltinSet<"vmv_v_v", "csilxfd", @@ -2043,11 +2043,11 @@ let UnMaskedPolicy = HasPassthruOperand, HasUnMaskedOverloaded = false in { // 17. Vector Permutation Instructions // 17.1. Integer Scalar Move Instructions let HasMasked = false, MaskedPolicy = NonePolicy in { - let HasVL = false, MangledName = "vmv_x" in + let HasVL = false, OverloadedName = "vmv_x" in defm vmv_x : RVVOp0BuiltinSet<"vmv_x_s", "csil", [["s", "ve", "ev"], ["s", "UvUe", "UeUv"]]>; - let MangledName = "vmv_s" in + let OverloadedName = "vmv_s" in defm vmv_s : RVVOutBuiltinSet<"vmv_s_x", "csil", [["x", "v", "vve"], ["x", "Uv", "UvUvUe"]]>; @@ -2055,10 +2055,10 @@ let HasMasked = false, MaskedPolicy = NonePolicy in { // 17.2. Floating-Point Scalar Move Instructions let HasMasked = false, MaskedPolicy = NonePolicy in { - let HasVL = false, MangledName = "vfmv_f" in + let HasVL = false, OverloadedName = "vfmv_f" in defm vfmv_f : RVVOp0BuiltinSet<"vfmv_f_s", "xfd", [["s", "ve", "ev"]]>; - let MangledName = "vfmv_s" in + let OverloadedName = "vfmv_s" in defm vfmv_s : RVVOutBuiltinSet<"vfmv_s_f", "xfd", [["f", "v", "vve"], ["x", "Uv", "UvUvUe"]]>; @@ -2144,7 +2144,7 @@ let HasMasked = false, HasVL = false, IRName = "" in { // LMUL truncation // C/C++ Operand: VecTy, IR Operand: VecTy, Index - let Name = "vlmul_trunc_v", MangledName = "vlmul_trunc", MaskedPolicy = NonePolicy, + let Name = "vlmul_trunc_v", OverloadedName = "vlmul_trunc", MaskedPolicy = NonePolicy, ManualCodegen = [{ { ID = Intrinsic::experimental_vector_extract; IntrinsicTypes = {ResultType, Ops[0]->getType()}; @@ -2162,7 +2162,7 @@ let HasMasked = false, HasVL = false, IRName = "" in { // LMUL extension // C/C++ Operand: SubVecTy, IR Operand: VecTy, SubVecTy, Index - let Name = "vlmul_ext_v", MangledName = "vlmul_ext", MaskedPolicy = NonePolicy, + let Name = "vlmul_ext_v", OverloadedName = "vlmul_ext", MaskedPolicy = NonePolicy, ManualCodegen = [{ ID = Intrinsic::experimental_vector_insert; IntrinsicTypes = {ResultType, Ops[0]->getType()}; diff --git a/clang/include/clang/Support/RISCVVIntrinsicUtils.h b/clang/include/clang/Support/RISCVVIntrinsicUtils.h index 0a7186d..0e9fe97 100644 --- a/clang/include/clang/Support/RISCVVIntrinsicUtils.h +++ b/clang/include/clang/Support/RISCVVIntrinsicUtils.h @@ -256,7 +256,7 @@ public: /// have illegal RVVType. static llvm::Optional computeTypes(BasicType BT, int Log2LMUL, unsigned NF, - llvm::ArrayRef PrototypeSeq); + llvm::ArrayRef Prototype); static llvm::Optional computeType(BasicType BT, int Log2LMUL, PrototypeDescriptor Proto); }; @@ -287,7 +287,7 @@ class RVVIntrinsic { private: std::string BuiltinName; // Builtin name std::string Name; // C intrinsic name. - std::string MangledName; + std::string OverloadedName; std::string IRName; bool IsMasked; bool HasVL; @@ -304,20 +304,22 @@ private: unsigned NF = 1; public: - RVVIntrinsic(llvm::StringRef Name, llvm::StringRef Suffix, llvm::StringRef MangledName, - llvm::StringRef MangledSuffix, llvm::StringRef IRName, bool IsMasked, - bool HasMaskedOffOperand, bool HasVL, PolicyScheme Scheme, - bool HasUnMaskedOverloaded, bool HasBuiltinAlias, - llvm::StringRef ManualCodegen, const RVVTypes &Types, + RVVIntrinsic(llvm::StringRef Name, llvm::StringRef Suffix, + llvm::StringRef OverloadedName, llvm::StringRef OverloadedSuffix, + llvm::StringRef IRName, bool IsMasked, bool HasMaskedOffOperand, + bool HasVL, PolicyScheme Scheme, bool HasUnMaskedOverloaded, + bool HasBuiltinAlias, llvm::StringRef ManualCodegen, + const RVVTypes &Types, const std::vector &IntrinsicTypes, - const std::vector &RequiredFeatures, unsigned NF); + const std::vector &RequiredFeatures, + unsigned NF); ~RVVIntrinsic() = default; RVVTypePtr getOutputType() const { return OutputType; } const RVVTypes &getInputTypes() const { return InputTypes; } llvm::StringRef getBuiltinName() const { return BuiltinName; } llvm::StringRef getName() const { return Name; } - llvm::StringRef getMangledName() const { return MangledName; } + llvm::StringRef getOverloadedName() const { return OverloadedName; } bool hasVL() const { return HasVL; } bool hasPolicy() const { return Scheme != SchemeNone; } bool hasPassthruOperand() const { return Scheme == HasPassthruOperand; } diff --git a/clang/lib/Support/RISCVVIntrinsicUtils.cpp b/clang/lib/Support/RISCVVIntrinsicUtils.cpp index 92d2904..afcd03c 100644 --- a/clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ b/clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -791,13 +791,13 @@ void RVVType::applyFixedLog2LMUL(int Log2LMUL, enum FixedLMULType Type) { Optional RVVType::computeTypes(BasicType BT, int Log2LMUL, unsigned NF, - ArrayRef PrototypeSeq) { + ArrayRef Prototype) { // LMUL x NF must be less than or equal to 8. if ((Log2LMUL >= 1) && (1 << Log2LMUL) * NF > 8) return llvm::None; RVVTypes Types; - for (const PrototypeDescriptor &Proto : PrototypeSeq) { + for (const PrototypeDescriptor &Proto : Prototype) { auto T = computeType(BT, Log2LMUL, Proto); if (!T.hasValue()) return llvm::None; @@ -847,8 +847,8 @@ Optional RVVType::computeType(BasicType BT, int Log2LMUL, // RVVIntrinsic implementation //===----------------------------------------------------------------------===// RVVIntrinsic::RVVIntrinsic( - StringRef NewName, StringRef Suffix, StringRef NewMangledName, - StringRef MangledSuffix, StringRef IRName, bool IsMasked, + StringRef NewName, StringRef Suffix, StringRef NewOverloadedName, + StringRef OverloadedSuffix, StringRef IRName, bool IsMasked, bool HasMaskedOffOperand, bool HasVL, PolicyScheme Scheme, bool HasUnMaskedOverloaded, bool HasBuiltinAlias, StringRef ManualCodegen, const RVVTypes &OutInTypes, const std::vector &NewIntrinsicTypes, @@ -858,17 +858,17 @@ RVVIntrinsic::RVVIntrinsic( HasBuiltinAlias(HasBuiltinAlias), ManualCodegen(ManualCodegen.str()), NF(NF) { - // Init BuiltinName, Name and MangledName + // Init BuiltinName, Name and OverloadedName BuiltinName = NewName.str(); Name = BuiltinName; - if (NewMangledName.empty()) - MangledName = NewName.split("_").first.str(); + if (NewOverloadedName.empty()) + OverloadedName = NewName.split("_").first.str(); else - MangledName = NewMangledName.str(); + OverloadedName = NewOverloadedName.str(); if (!Suffix.empty()) Name += "_" + Suffix.str(); - if (!MangledSuffix.empty()) - MangledName += "_" + MangledSuffix.str(); + if (!OverloadedSuffix.empty()) + OverloadedName += "_" + OverloadedSuffix.str(); if (IsMasked) { BuiltinName += "_m"; Name += "_m"; diff --git a/clang/utils/TableGen/RISCVVEmitter.cpp b/clang/utils/TableGen/RISCVVEmitter.cpp index dc6cbcb..8b008e0 100644 --- a/clang/utils/TableGen/RISCVVEmitter.cpp +++ b/clang/utils/TableGen/RISCVVEmitter.cpp @@ -155,10 +155,10 @@ void emitIntrinsicFuncDef(const RVVIntrinsic &RVVI, raw_ostream &OS) { OS << ");\n"; } -void emitMangledFuncDef(const RVVIntrinsic &RVVI, raw_ostream &OS) { +void emitOverloadedFuncDef(const RVVIntrinsic &RVVI, raw_ostream &OS) { OS << "__attribute__((__clang_builtin_alias__("; OS << "__builtin_rvv_" << RVVI.getBuiltinName() << ")))\n"; - OS << RVVI.getOutputType()->getTypeStr() << " " << RVVI.getMangledName() + OS << RVVI.getOutputType()->getTypeStr() << " " << RVVI.getOverloadedName() << "("; // Emit function arguments const RVVTypes &InputTypes = RVVI.getInputTypes(); @@ -289,7 +289,7 @@ void RVVEmitter::createHeader(raw_ostream &OS) { if (!Inst.isMasked() && !Inst.hasUnMaskedOverloaded()) return; OS << "__rvv_aio "; - emitMangledFuncDef(Inst, OS); + emitOverloadedFuncDef(Inst, OS); }); OS << "#undef __rvv_aio\n"; @@ -387,8 +387,8 @@ void RVVEmitter::createRVVIntrinsics( for (auto *R : RV) { StringRef Name = R->getValueAsString("Name"); StringRef SuffixProto = R->getValueAsString("Suffix"); - StringRef OverloadedName = R->getValueAsString("MangledName"); - StringRef OverloadedSuffixProto = R->getValueAsString("MangledSuffix"); + StringRef OverloadedName = R->getValueAsString("OverloadedName"); + StringRef OverloadedSuffixProto = R->getValueAsString("OverloadedSuffix"); StringRef Prototypes = R->getValueAsString("Prototype"); StringRef TypeRange = R->getValueAsString("TypeRange"); bool HasMasked = R->getValueAsBit("HasMasked");