[llvm] [TableGen] Support emitting preprocessed output (PR #120113)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 2 06:15:05 PST 2026


================
@@ -153,51 +206,60 @@ int llvm::TableGenMain(const char *argv0, MultiFileTableGenMainFn MainFn) {
   SrcMgr.setIncludeDirs(IncludeDirs);
   SrcMgr.setVirtualFileSystem(vfs::getRealFileSystem());
 
-  TGParser Parser(SrcMgr, MacroNames, Records, NoWarnOnUnusedTemplateArgs);
+  if (Preprocess) {
+    std::string OutString;
+    raw_string_ostream Out(OutString);
+    if (preprocessInput(Out))
+      return 1;
+    if (int Ret = WriteOutput(argv0, OutputFilename, OutString))
+      return Ret;
+  } else {
+    TGParser Parser(SrcMgr, MacroNames, Records, NoWarnOnUnusedTemplateArgs);
----------------
jayfoad wrote:

OK, done -- I made a helper function that handles the `Preprocess` case with an early return.

https://github.com/llvm/llvm-project/pull/120113


More information about the llvm-commits mailing list