[llvm] [CodeGen][NewPM] Port `AsmPrinter` to new pass manager (PR #99320)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed May 21 08:08:54 PDT 2025


================
@@ -541,11 +548,20 @@ bool AsmPrinter::doInitialization(Module &M) {
       OutStreamer->emitXCOFFRenameDirective(XSym, XSym->getSymbolTableName());
   }
 
-  GCModuleInfo *MI = getAnalysisIfAvailable<GCModuleInfo>();
-  assert(MI && "AsmPrinter didn't require GCModuleInfo?");
-  for (const auto &I : *MI)
-    if (GCMetadataPrinter *MP = getOrCreateGCPrinter(*I))
-      MP->beginAssembly(M, *MI, *this);
+  if (inNewPassManager()) {
+    auto &MI = MAM->getResult<CollectorMetadataAnalysis>(M);
+    for (const auto &[Name, Strategy] : MI)
+      if ([[maybe_unused]] GCMetadataPrinter *MP =
+              getOrCreateGCPrinter(*Strategy)) {
+        // TODO: Let GCMetadataPrinter support new pass manager
+      }
+  } else {
+    GCModuleInfo *MI = getAnalysisIfAvailable<GCModuleInfo>();
+    assert(MI && "AsmPrinter didn't require GCModuleInfo?");
+    for (const auto &I : *MI)
----------------
arsenm wrote:

Braces 

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


More information about the llvm-commits mailing list