[llvm] [TableGen] Resolve References at top level (PR #104578)

Akshat Oke via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 16 03:18:47 PDT 2024


https://github.com/Akshat-Oke created https://github.com/llvm/llvm-project/pull/104578

Add a dummy resolver to resolve references outside records. This invokes Fold() with isFinal to force resolution.

Fixes #102447

>From d207f44b029ccca1526edbb1c44bf44404432ad8 Mon Sep 17 00:00:00 2001
From: Akshat Oke <Akshat.Oke at amd.com>
Date: Fri, 16 Aug 2024 10:11:00 +0000
Subject: [PATCH] [TableGen] Resolve References at top level

Add a dummy resolver to resolve references outside records. This invokes
Fold() with isFinal to force resolution.

Fixes #102447
---
 llvm/lib/TableGen/TGParser.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp
index ce9da960545c23..ca3656959c65f0 100644
--- a/llvm/lib/TableGen/TGParser.cpp
+++ b/llvm/lib/TableGen/TGParser.cpp
@@ -4460,8 +4460,13 @@ bool TGParser::ParseDump(MultiClass *CurMultiClass, Record *CurRec) {
 
   if (CurRec)
     CurRec->addDump(Loc, Message);
-  else
+  else {
+    HasReferenceResolver resolver{nullptr};
+    resolver.setFinal(true);
+    // force a resolution with a dummy resolver
+    Message->resolveReferences(resolver);
     addEntry(std::make_unique<Record::DumpInfo>(Loc, Message));
+  }
 
   return false;
 }



More information about the llvm-commits mailing list