<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/58280>58280</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            opt -passes="default<O0>" -print-pipeline-passes results in bad "CoroConditionalWrapper" printout
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mikaelholmen
      </td>
    </tr>
</table>

<pre>
    llvm commit: 66046e6e65e5
Reproduce with:```opt -passes="default<O0>" empty.ll -o /dev/null -print-pipeline-passes```
on an empty file empty.ll
Result:
```verify,always-inline,CoroConditionalWrapper,function(annotation-remarks),verify,BitcodeWriterPass```

If you then pass the above printed pipeline to opt you get
```opt: unknown module pass 'CoroConditionalWrapper'```
This is e.g. an issue when trying to use utils/reduce-pipeline.py to automatically reduce an opt pipeline.

CoroConditionalWrapper is missing in
 llvm/lib/Passes/PassRegistry.def

But I don't even know what to add there since the pass looks like some kind of hack conditionally running passes in it's own pass manager:
```
CoroConditionalWrapper::CoroConditionalWrapper(ModulePassManager &&PM)
    : PM(std::move(PM)) {}

PreservedAnalyses CoroConditionalWrapper::run(Module &M,
                                              ModuleAnalysisManager &AM) {
  if (!coro::declaresAnyIntrinsic(M))
    return PreservedAnalyses::all();

  return PM.run(M, AM);
}
```





</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNVcuOozoQ_RqzsYLAAZIsWCTpaakX0bRGV5q1gSLxxNjImLT4-1uFOw_1YzTEcmK7OHVOVblS2WYqtb50vLZdpzxbbnlRJFkB-MkhZ8kTS7a_oHe2GWvgb8qf0IYVSRi293zRy2GAgS2fmBANtHLUiLP_mbDlD9zh0PV-irXmC8uZeG7ggrMZaaN3yvhFr3rQysAV6AoenFvDpQkgvFUabnhXbsPsbxuWt5cv4FQ7MbGX-k1Ow0IZcoHrvXV2b02jvLJG6t9O9j04PGhHU9MeE2tpjPWSFgsHnXTngYkNmtxAd8rXtoHfTnlwr0j7A-kwv7R8siP3JzCctNEvLit7AT4rh4ZftXNvOQWT7I_gP4jBE8rMaM7GvhneYTIwEDMkE6vvFK0-kPrvpAaOA-JjTDFVwzBiSomdd5MyRyIxDsBHrzQqfnZASb_lJ-4nspCjtx0Gp5ZaTzzYEBzRv5k-huFrfsSkQwrkV5lgyakU0bFWFc6voRzCj19wVAPSjLHCHsF3o-cvvKG0rTyHC4qhIKEs6We2TUNhd8DRExKlFMyB09aecVZnPLEd8LMyDbctP8n6jLfhRpc0jsYQzVCfyJbjTRGrgVMyZrBOGnnEmH8qw79FgKyX352J9WHOMmk_BHTMdYHj9UDFGOKFDxUGba0H3wTEDgsM18FObDhb7djq6TForw4GcBdotuhxIk1_Y4jyb3SIA-Lu7_7__QkIwaV6FLU9XGm-o6oWt9dMpDXSCiQaqLVE2lszvRiPt2dQNbEKGu90HPjRGf5JYUDBdM7AG7bcPQbk_t4hfpeLIvlM7G56C-JXl_3zHEGZFkWeFdkmE1FTLpvNciMjr7yG8l8659f9EalSy5vrsJINRkp8V0Mi9Bk7-mh0ujx538-BEM84jtjLxyrGxk837v3i4Rd6tX-gxgp_njsE3cB8LdZJdCrTPMvbTSWzFqpUJO0qlZs6y3MhqjRLCxFpWYEeSpbvWP4UqVIkQqRJmiZ5sklEXK_ksqqLOq3bZZVDxbIE-6vSMTmOrTtGbv47WlTjccBDjXd-uB-ifnU0AFd8bEUn68pOnSXok9UdmGjmXM6E_wfzcCeJ">