<div dir="ltr">Hello all,<div><br></div><div>I have 2 separate questions:</div><div><br></div><div>1, What are the differences between <b>LegacyPassManager</b> and <b>PassManager</b>?  I see that <b>opt</b> uses the former most of the times while the latter is used via <b>PassBuilder</b> API when an user wants to build her own pipeline, but I have no idea why so. What to use and when to use it is not clear to me.</div><div><br></div><div>2, I've asked this question once but have had no answer, so I'm gonna revive it here: in <b>opt</b>, the <b>verify-each</b> mode is only activated when we provide a pass name or a pipeline (list of pass names).  I guess this is intended, but I expect that <b>verify-each</b> to insert <b>Verifier</b> to the whole pipeline after each optimization pass, even when I pass -O1/2/3/s/z to <b>opt</b>.  And I assume others do expect the same thing.</div><div><br></div><div>The 2nd question lead me to another idea: if we really want to make <b>verify-each</b> to work on any pipeline (not only user-provided ones), and we'll soon have a <b>debugify-each</b> option, should we refactor the code to have a <b>apply-after-each=pass-name</b> option that automatically inserts <b>pass-name </b>to the pipeline after each optimization pass?  We can even replace <b>print-after-all</b> option with <b>apply-after-each=PrintModulePassWrapper </b>for example?</div><div><br></div><div>Thank you all,</div><div><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Son Tuan Vu</div></div></div>
</div></div>