https://github.com/jurahul created https://github.com/llvm/llvm-project/pull/108503
[clang][TableGen] Change SVE Emitter to use const RecordKeeper. >From 11449fe4a67f1c60d47b9ed8bcae5520fdc8b565 Mon Sep 17 00:00:00 2001 From: Rahul Joshi <rjo...@nvidia.com> Date: Thu, 12 Sep 2024 19:55:10 -0700 Subject: [PATCH] [clang][TableGen] Change SVE Emitter to use const RecordKeeper --- clang/utils/TableGen/SveEmitter.cpp | 52 ++++++++++++------------- clang/utils/TableGen/TableGenBackends.h | 34 +++++++++------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/clang/utils/TableGen/SveEmitter.cpp b/clang/utils/TableGen/SveEmitter.cpp index b2e2db1a409904..5abf6fc49bc30b 100644 --- a/clang/utils/TableGen/SveEmitter.cpp +++ b/clang/utils/TableGen/SveEmitter.cpp @@ -280,7 +280,7 @@ class SVEEmitter { static const std::array<ReinterpretTypeInfo, 12> Reinterprets; - RecordKeeper &Records; + const RecordKeeper &Records; llvm::StringMap<uint64_t> EltTypes; llvm::StringMap<uint64_t> MemEltTypes; llvm::StringMap<uint64_t> FlagTypes; @@ -288,7 +288,7 @@ class SVEEmitter { llvm::StringMap<uint64_t> ImmCheckTypes; public: - SVEEmitter(RecordKeeper &R) : Records(R) { + SVEEmitter(const RecordKeeper &R) : Records(R) { for (auto *RV : Records.getAllDerivedDefinitions("EltType")) EltTypes[RV->getNameInitAsString()] = RV->getValueAsInt("Value"); for (auto *RV : Records.getAllDerivedDefinitions("MemEltType")) @@ -397,7 +397,7 @@ class SVEEmitter { void createBuiltinZAState(raw_ostream &OS); /// Create intrinsic and add it to \p Out - void createIntrinsic(Record *R, + void createIntrinsic(const Record *R, SmallVectorImpl<std::unique_ptr<Intrinsic>> &Out); }; @@ -1151,7 +1151,7 @@ uint64_t SVEEmitter::encodeTypeFlags(const SVEType &T) { } void SVEEmitter::createIntrinsic( - Record *R, SmallVectorImpl<std::unique_ptr<Intrinsic>> &Out) { + const Record *R, SmallVectorImpl<std::unique_ptr<Intrinsic>> &Out) { StringRef Name = R->getValueAsString("Name"); StringRef Proto = R->getValueAsString("Prototype"); StringRef Types = R->getValueAsString("Types"); @@ -1225,7 +1225,7 @@ void SVEEmitter::createCoreHeaderIntrinsics(raw_ostream &OS, SVEEmitter &Emitter, ACLEKind Kind) { SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); for (auto *R : RV) createIntrinsic(R, Defs); @@ -1427,7 +1427,7 @@ void SVEEmitter::createHeader(raw_ostream &OS) { } void SVEEmitter::createBuiltins(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) createIntrinsic(R, Defs); @@ -1469,7 +1469,7 @@ void SVEEmitter::createBuiltins(raw_ostream &OS) { } void SVEEmitter::createCodeGenMap(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) createIntrinsic(R, Defs); @@ -1502,7 +1502,7 @@ void SVEEmitter::createCodeGenMap(raw_ostream &OS) { } void SVEEmitter::createRangeChecks(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) createIntrinsic(R, Defs); @@ -1634,7 +1634,7 @@ void SVEEmitter::createSMEHeader(raw_ostream &OS) { } void SVEEmitter::createSMEBuiltins(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) { createIntrinsic(R, Defs); @@ -1662,7 +1662,7 @@ void SVEEmitter::createSMEBuiltins(raw_ostream &OS) { } void SVEEmitter::createSMECodeGenMap(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) { createIntrinsic(R, Defs); @@ -1696,7 +1696,7 @@ void SVEEmitter::createSMECodeGenMap(raw_ostream &OS) { } void SVEEmitter::createSMERangeChecks(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) { createIntrinsic(R, Defs); @@ -1733,7 +1733,7 @@ void SVEEmitter::createSMERangeChecks(raw_ostream &OS) { } void SVEEmitter::createBuiltinZAState(raw_ostream &OS) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) createIntrinsic(R, Defs); @@ -1773,7 +1773,7 @@ void SVEEmitter::createBuiltinZAState(raw_ostream &OS) { } void SVEEmitter::createStreamingAttrs(raw_ostream &OS, ACLEKind Kind) { - std::vector<Record *> RV = Records.getAllDerivedDefinitions("Inst"); + std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst"); SmallVector<std::unique_ptr<Intrinsic>, 128> Defs; for (auto *R : RV) createIntrinsic(R, Defs); @@ -1826,55 +1826,55 @@ void SVEEmitter::createStreamingAttrs(raw_ostream &OS, ACLEKind Kind) { } namespace clang { -void EmitSveHeader(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveHeader(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createHeader(OS); } -void EmitSveBuiltins(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveBuiltins(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createBuiltins(OS); } -void EmitSveBuiltinCG(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveBuiltinCG(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createCodeGenMap(OS); } -void EmitSveRangeChecks(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveRangeChecks(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createRangeChecks(OS); } -void EmitSveTypeFlags(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveTypeFlags(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createTypeFlags(OS); } -void EmitImmCheckTypes(RecordKeeper &Records, raw_ostream &OS) { +void EmitImmCheckTypes(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createImmCheckTypes(OS); } -void EmitSveStreamingAttrs(RecordKeeper &Records, raw_ostream &OS) { +void EmitSveStreamingAttrs(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createStreamingAttrs(OS, ACLEKind::SVE); } -void EmitSmeHeader(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeHeader(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createSMEHeader(OS); } -void EmitSmeBuiltins(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeBuiltins(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createSMEBuiltins(OS); } -void EmitSmeBuiltinCG(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeBuiltinCG(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createSMECodeGenMap(OS); } -void EmitSmeRangeChecks(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeRangeChecks(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createSMERangeChecks(OS); } -void EmitSmeStreamingAttrs(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeStreamingAttrs(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createStreamingAttrs(OS, ACLEKind::SME); } -void EmitSmeBuiltinZAState(RecordKeeper &Records, raw_ostream &OS) { +void EmitSmeBuiltinZAState(const RecordKeeper &Records, raw_ostream &OS) { SVEEmitter(Records).createBuiltinZAState(OS); } } // End namespace clang diff --git a/clang/utils/TableGen/TableGenBackends.h b/clang/utils/TableGen/TableGenBackends.h index 01d16d2dc3e5f1..a20a18ebe437f4 100644 --- a/clang/utils/TableGen/TableGenBackends.h +++ b/clang/utils/TableGen/TableGenBackends.h @@ -120,20 +120,26 @@ void EmitNeonSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); void EmitVectorTypes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); void EmitNeonTest(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitImmCheckTypes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveTypeFlags(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSveStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); - -void EmitSmeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSmeBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSmeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSmeRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSmeStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitSmeBuiltinZAState(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitImmCheckTypes(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitSveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSveBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSveTypeFlags(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSveRangeChecks(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitSveStreamingAttrs(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); + +void EmitSmeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSmeBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSmeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitSmeRangeChecks(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitSmeStreamingAttrs(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitSmeBuiltinZAState(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); void EmitMveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); void EmitMveBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits