[llvm-dev] Renaming passes

Arthur Eubanks via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 25 09:48:21 PDT 2020


After talking with some NPM people, I believe the ultimate goal after NPM
is enabled by default is to only support `-passes=`, and remove support for
`-foo-pass`.
However, until NPM is enabled by default, we still want tests using opt to
use the legacy PM by default.
We could attempt to make `-passes=` work with the legacy PM and have a
legacy vs new PM flag, but given the design/syntax of `-passes=` I don't
think that's feasible (see llvm/include/llvm/Passes/PassBuilder.h).
So for making sure everything works with NPM, I think we need to support
`-foo-pass` in NPM to be able to run all opt tests against NPM. Then at
some point after NPM is enabled by default we can attempt to migrate
everything to `-passes=`.

On Thu, Jun 25, 2020 at 9:22 AM Hiroshi Yamauchi <yamauchi at google.com>
wrote:

>
>
> On Wed, Jun 24, 2020 at 11:13 AM Arthur Eubanks via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi,
>>
>> As part of new pass manager work, I've been trying to get something like
>> `opt -foo` working under the NPM, where `foo` is the name of a pass.
>>
>> In the past there's been no reason to keep the names of passes consistent
>> between NPM and legacy PM. But now there is a reason to make them match, so
>> that we don't have to touch every single test that uses `opt`.
>>
>
> What's the goal here? Does it include removing the -passes option used by
> the NPM?
>
>
>>
>> There are a couple of names that don't match though, for example the
>> "basic alias analysis" pass is named "basicaa" under the legacy PM
>> INITIALIZE_PASS_BEGIN(BasicAAWrapperPass, "basicaa",
>>                       "Basic Alias Analysis (stateless AA impl)", true,
>> true)
>> but named "basic-aa" under the NPM
>> FUNCTION_ALIAS_ANALYSIS("basic-aa", BasicAA())
>> . Almost all the other AA passes have a dash in them so I think it makes
>> sense to rename "basicaa" -> "basic-aa".
>>
>> Is there accepted wisdom on renaming pass names? Is a pass name a stable
>> interface? When is it ok to rename a pass? If there are 800 usages of a
>> flag, should I rename them atomically?
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200625/369fa18e/attachment.html>


More information about the llvm-dev mailing list