https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/108274
>From 6454a52add345be58efcac015d61ec7983badf08 Mon Sep 17 00:00:00 2001 From: Rahul Joshi <rjo...@nvidia.com> Date: Wed, 11 Sep 2024 11:51:51 -0700 Subject: [PATCH] [clang][TableGen] Change ASTProperties Emitter to use const RecordKeeper --- .../TableGen/ClangASTPropertiesEmitter.cpp | 18 ++++++++++-------- clang/utils/TableGen/TableGenBackends.h | 12 ++++++++---- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp b/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp index 70005da28559d3..2d67b6b643637c 100644 --- a/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp +++ b/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp @@ -89,13 +89,13 @@ struct CasedTypeInfo { class ASTPropsEmitter { raw_ostream &Out; - RecordKeeper &Records; + const RecordKeeper &Records; std::map<HasProperties, NodeInfo> NodeInfos; std::vector<PropertyType> AllPropertyTypes; std::map<PropertyType, CasedTypeInfo> CasedTypeInfos; public: - ASTPropsEmitter(RecordKeeper &records, raw_ostream &out) + ASTPropsEmitter(const RecordKeeper &records, raw_ostream &out) : Out(out), Records(records) { // Find all the properties. @@ -587,28 +587,28 @@ void ASTPropsEmitter::emitWriteOfProperty(StringRef writerName, /// Emit an .inc file that defines the AbstractFooReader class /// for the given AST class hierarchy. template <class NodeClass> -static void emitASTReader(RecordKeeper &records, raw_ostream &out, +static void emitASTReader(const RecordKeeper &records, raw_ostream &out, StringRef description) { emitSourceFileHeader(description, out, records); ASTPropsEmitter(records, out).emitNodeReaderClass<NodeClass>(); } -void clang::EmitClangTypeReader(RecordKeeper &records, raw_ostream &out) { +void clang::EmitClangTypeReader(const RecordKeeper &records, raw_ostream &out) { emitASTReader<TypeNode>(records, out, "A CRTP reader for Clang Type nodes"); } /// Emit an .inc file that defines the AbstractFooWriter class /// for the given AST class hierarchy. template <class NodeClass> -static void emitASTWriter(RecordKeeper &records, raw_ostream &out, +static void emitASTWriter(const RecordKeeper &records, raw_ostream &out, StringRef description) { emitSourceFileHeader(description, out, records); ASTPropsEmitter(records, out).emitNodeWriterClass<NodeClass>(); } -void clang::EmitClangTypeWriter(RecordKeeper &records, raw_ostream &out) { +void clang::EmitClangTypeWriter(const RecordKeeper &records, raw_ostream &out) { emitASTWriter<TypeNode>(records, out, "A CRTP writer for Clang Type nodes"); } @@ -847,7 +847,8 @@ void ASTPropsEmitter::emitBasicReaderWriterFile(const ReaderWriterInfo &info) { /// Emit an .inc file that defines some helper classes for reading /// basic values. -void clang::EmitClangBasicReader(RecordKeeper &records, raw_ostream &out) { +void clang::EmitClangBasicReader(const RecordKeeper &records, + raw_ostream &out) { emitSourceFileHeader("Helper classes for BasicReaders", out, records); // Use any property, we won't be using those properties. @@ -857,7 +858,8 @@ void clang::EmitClangBasicReader(RecordKeeper &records, raw_ostream &out) { /// Emit an .inc file that defines some helper classes for writing /// basic values. -void clang::EmitClangBasicWriter(RecordKeeper &records, raw_ostream &out) { +void clang::EmitClangBasicWriter(const RecordKeeper &records, + raw_ostream &out) { emitSourceFileHeader("Helper classes for BasicWriters", out, records); // Use any property, we won't be using those properties. diff --git a/clang/utils/TableGen/TableGenBackends.h b/clang/utils/TableGen/TableGenBackends.h index 6b8d7f82ec9845..3ee91110d58117 100644 --- a/clang/utils/TableGen/TableGenBackends.h +++ b/clang/utils/TableGen/TableGenBackends.h @@ -35,11 +35,15 @@ void EmitClangDeclContext(llvm::RecordKeeper &RK, llvm::raw_ostream &OS); void EmitClangASTNodes(llvm::RecordKeeper &RK, llvm::raw_ostream &OS, const std::string &N, const std::string &S, std::string_view PriorizeIfSubclassOf = ""); -void EmitClangBasicReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitClangBasicWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitClangBasicReader(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitClangBasicWriter(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); void EmitClangTypeNodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitClangTypeReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); -void EmitClangTypeWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); +void EmitClangTypeReader(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); +void EmitClangTypeWriter(const llvm::RecordKeeper &Records, + llvm::raw_ostream &OS); void EmitClangAttrParserStringSwitches(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); void EmitClangAttrSubjectMatchRulesParserStringSwitches( _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits