<div><font>Thanks. I ended up directly using legacy::PassManager which worked for me</font></div><div><font><br></font></div><div><font>Zhang</font></div><div><includetail><div> </div><div> </div><div style="font:Verdana normal 14px;color:#000;"><div style="FONT-SIZE: 12px;FONT-FAMILY: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="FONT-SIZE: 12px;background:#efefef;padding:8px;"><div id="menu_sender"><b>From: </b> "Michael Kruse"<llvmdev@meinersbur.de>;</div><div><b>Date: </b> Fri, Feb 19, 2021 02:07 PM</div><div><b>To: </b> "Zhang"<admin@mayuyu.io>; <wbr></div><div><b>Cc: </b> "llvm-dev"<llvm-dev@lists.llvm.org>; <wbr></div><div><b>Subject: </b> Re: [llvm-dev] Example of using RGPassManager?</div></div><div> </div><div style="position:relative;"><div id="tmpcontent_res"></div>Probably it's because RegionPrinterPass also depends on a FunctionPass<br>analysis, such as DominatorTree. Try creating a function pass and<br>adding createRegionPrinterPass() to it, it will create the<br>RGPassManager for you.<br><br>Michael<br><br>Am Do., 18. Feb. 2021 um 22:33 Uhr schrieb Zhang via llvm-dev<br><llvm-dev@lists.llvm.org>:<br>><br>> Hi:<br>> My pass needs to run on LLVM Regions, I'm currently using the following code<br>> ```<br>> RGPassManager RPM;<br>> RPM.add(createRegionPrinterPass());<br>> RPM.doInitialization(M);<br>> for (Function &func : M.functions()) {<br>>   RPM.runOnFunction(func);<br>> }<br>> RPM.doFinalization(M);<br>> ```<br>><br>> However when adding the pass, it asserts with PMTopLevelManager::findAnalysisUsage due to top level pass manager is null<br>><br>> Zhang<br>> _______________________________________________<br>> LLVM Developers mailing list<br>> llvm-dev@lists.llvm.org<br>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br></div></div><!--<![endif]--></includetail></div>