<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Can I ask a basic question? Given we've separated the interface
from the choice of pass manager, why are we removing the "-pass"
interface at all? Is there some non-trivial amount of maintenance
needed to keep that working?<br>
</p>
<p>Personally, I find the -pass-name interface much easier to work
with for simple adhoc testing than the -passes version. <br>
</p>
<p>I can definitely see the case for dropping testing of old-pm +
pass combinations, but at this point, that's less about the
command line and more about removing -enable-new-pm=0 tests.
There's also maybe an argument that we should spell the command
line only one way in testing, but that's different than removing
the command line parsing. <br>
</p>
<p>Philip<br>
</p>
<div class="moz-cite-prefix">On 6/28/21 6:33 PM, Arthur Eubanks via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAPW48sq4ahgoWvGohawO1iYr+OaUSqwJSdHyxfFhFHx60cyCSw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Now that the new PM has been the default for the
optimization pipeline for a while, I'd like to start thinking
about next steps. Not quite deprecating the legacy PM for the
optimization pipeline yet, since we should wait for the next
LLVM release. But one thing we can start doing is cleaning up
lit tests that use opt.
<div>
<div><br>
</div>
<div>There's been confusion over exactly how the -passes=
parsing works, so I've updated <a
href="https://llvm.org/docs/NewPassManager.html"
moz-do-not-send="true">https://llvm.org/docs/NewPassManager.html</a>
(or rather just the sources, seems like the webpage hasn't
updated yet) with some details.<br>
</div>
</div>
<div><br>
</div>
<div>For background, `opt -foo` is currently already translated
to `opt -passes=foo` when the new PM is on (which is true by
default).</div>
<div><br>
</div>
<div>I imagine this would be a short script that has a list of
passes from PassRegistry.def and the IR unit they operate on,
and looks through RUN lines with opt, deleting existing pass
arguments and replacing them with a -passes= argument. If we
have more than one pass, each pass would be wrapped in the
proper adaptor. For example, `opt -instcombine -globaldce`
becomes `opt -passes='function(instcombine),globaldce'`.</div>
<div><br>
</div>
<div>We need to make sure that we don't end up causing too many
duplicate RUN lines if we have tests that specify both `opt
-foo` and `opt -passes=foo`.</div>
<div><br>
</div>
<div>We should wait until the next LLVM release before changing
all opt tests since we do want any bots using the legacy PM to
still run opt tests against the legacy PM. But until then we
can pick a couple lesser-used passes/test directories to touch
up.<br>
</div>
<div><br>
</div>
<div>Note that this does not include any opt tests that test
passes on available under the legacy PM, which would be IR
passes in the codegen pipeline.</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</body>
</html>