[llvm] 667815c - [NFC][TableGen] Change `RecordKeeper::getDef()` to return const pointer (#110992)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 3 08:18:46 PDT 2024
Author: Rahul Joshi
Date: 2024-10-03T08:18:43-07:00
New Revision: 667815ccf49bc415544484f1b717bb7551cd9c93
URL: https://github.com/llvm/llvm-project/commit/667815ccf49bc415544484f1b717bb7551cd9c93
DIFF: https://github.com/llvm/llvm-project/commit/667815ccf49bc415544484f1b717bb7551cd9c93.diff
LOG: [NFC][TableGen] Change `RecordKeeper::getDef()` to return const pointer (#110992)
This is a part of effort to have better const correctness in TableGen
backends:
https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Added:
Modified:
llvm/include/llvm/TableGen/Record.h
llvm/lib/TableGen/Record.cpp
llvm/lib/TableGen/SetTheory.cpp
llvm/lib/TableGen/TGParser.cpp
llvm/unittests/TableGen/ParserEntryPointTest.cpp
llvm/utils/TableGen/Common/CodeGenSchedule.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/TableGen/Record.h b/llvm/include/llvm/TableGen/Record.h
index a8f1f0fe89b07e..01e41541bf044b 100644
--- a/llvm/include/llvm/TableGen/Record.h
+++ b/llvm/include/llvm/TableGen/Record.h
@@ -1993,14 +1993,14 @@ class RecordKeeper {
}
/// Get the concrete record with the specified name.
- Record *getDef(StringRef Name) const {
+ const Record *getDef(StringRef Name) const {
auto I = Defs.find(Name);
return I == Defs.end() ? nullptr : I->second.get();
}
/// Get the \p Init value of the specified global variable.
Init *getGlobal(StringRef Name) const {
- if (Record *R = getDef(Name))
+ if (const Record *R = getDef(Name))
return R->getDefInit();
auto It = ExtraGlobals.find(Name);
return It == ExtraGlobals.end() ? nullptr : It->second;
diff --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp
index 6a7c7b544814fa..bebfb4b8c381c1 100644
--- a/llvm/lib/TableGen/Record.cpp
+++ b/llvm/lib/TableGen/Record.cpp
@@ -871,7 +871,7 @@ Init *UnOpInit::Fold(Record *CurRec, bool IsFinal) const {
} else if (isa<RecordRecTy>(getType())) {
if (StringInit *Name = dyn_cast<StringInit>(LHS)) {
- Record *D = RK.getDef(Name->getValue());
+ const Record *D = RK.getDef(Name->getValue());
if (!D && CurRec) {
// Self-references are allowed, but their resolution is delayed until
// the final resolve to ensure that we get the correct type for them.
@@ -2113,7 +2113,7 @@ Init *ExistsOpInit::Fold(Record *CurRec, bool IsFinal) const {
if (StringInit *Name = dyn_cast<StringInit>(Expr)) {
// Look up all defined records to see if we can find one.
- Record *D = CheckType->getRecordKeeper().getDef(Name->getValue());
+ const Record *D = CheckType->getRecordKeeper().getDef(Name->getValue());
if (D) {
// Check if types are compatible.
return IntInit::get(getRecordKeeper(),
diff --git a/llvm/lib/TableGen/SetTheory.cpp b/llvm/lib/TableGen/SetTheory.cpp
index edb99827f7c676..47718cc8b0e7fc 100644
--- a/llvm/lib/TableGen/SetTheory.cpp
+++ b/llvm/lib/TableGen/SetTheory.cpp
@@ -222,7 +222,7 @@ struct SequenceOp : public SetTheory::Operator {
std::string Name;
raw_string_ostream OS(Name);
OS << format(Format.c_str(), unsigned(From));
- Record *Rec = Records.getDef(Name);
+ const Record *Rec = Records.getDef(Name);
if (!Rec)
PrintFatalError(Loc, "No def named '" + Name + "': " +
Expr->getAsString());
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp
index 2df84742c73b99..aed4f3fe0e96b5 100644
--- a/llvm/lib/TableGen/TGParser.cpp
+++ b/llvm/lib/TableGen/TGParser.cpp
@@ -541,7 +541,7 @@ bool TGParser::resolve(const std::vector<RecordsEntry> &Source,
/// Resolve the record fully and add it to the record keeper.
bool TGParser::addDefOne(std::unique_ptr<Record> Rec) {
Init *NewName = nullptr;
- if (Record *Prev = Records.getDef(Rec->getNameInitAsString())) {
+ if (const Record *Prev = Records.getDef(Rec->getNameInitAsString())) {
if (!Rec->isAnonymous()) {
PrintError(Rec->getLoc(),
"def already exists: " + Rec->getNameInitAsString());
@@ -1108,7 +1108,7 @@ const RecTy *TGParser::ParseType() {
Lex.Lex();
return I->second;
}
- if (Record *R = ParseClassID())
+ if (const Record *R = ParseClassID())
return RecordRecTy::get(R);
TokError("unknown class name");
return nullptr;
diff --git a/llvm/unittests/TableGen/ParserEntryPointTest.cpp b/llvm/unittests/TableGen/ParserEntryPointTest.cpp
index 28290e8ecdf687..920e06fb0c3fa1 100644
--- a/llvm/unittests/TableGen/ParserEntryPointTest.cpp
+++ b/llvm/unittests/TableGen/ParserEntryPointTest.cpp
@@ -33,7 +33,7 @@ TEST(Parser, SanityTest) {
bool ProcessResult = TableGenParseFile(SrcMgr, Records);
EXPECT_FALSE(ProcessResult);
- Record *Foo = Records.getDef("Foo");
+ const Record *Foo = Records.getDef("Foo");
std::optional<StringRef> Field = Foo->getValueAsOptionalString("strField");
EXPECT_TRUE(Field.has_value());
EXPECT_EQ(*Field, "value");
diff --git a/llvm/utils/TableGen/Common/CodeGenSchedule.cpp b/llvm/utils/TableGen/Common/CodeGenSchedule.cpp
index 45477b8fe7402f..9c37fbe9c4b427 100644
--- a/llvm/utils/TableGen/Common/CodeGenSchedule.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenSchedule.cpp
@@ -532,8 +532,8 @@ void CodeGenSchedModels::collectProcModels() {
ProcModels.reserve(ProcRecords.size() + 1);
// Use idx=0 for NoModel/NoItineraries.
- Record *NoModelDef = Records.getDef("NoSchedModel");
- Record *NoItinsDef = Records.getDef("NoItineraries");
+ const Record *NoModelDef = Records.getDef("NoSchedModel");
+ const Record *NoItinsDef = Records.getDef("NoItineraries");
ProcModels.emplace_back(0, "NoSchedModel", NoModelDef, NoItinsDef);
ProcModelMap[NoModelDef] = 0;
More information about the llvm-commits
mailing list