[llvm-dev] Renaming passes
Matt Arsenault via llvm-dev
llvm-dev at lists.llvm.org
Wed Jun 24 16:48:41 PDT 2020
> On Jun 24, 2020, at 19:17, Arthur Eubanks <aeubanks at google.com> wrote:
>
>
>
> On Wed, Jun 24, 2020 at 12:23 PM Philip Reames <listmail at philipreames.com <mailto:listmail at philipreames.com>> wrote:
>
>
> On 6/24/20 11:21 AM, Matt Arsenault via llvm-dev wrote:
>>
>>
>>> On Jun 24, 2020, at 14:13, Arthur Eubanks via llvm-dev <llvm-dev at lists.llvm.org <mailto: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`.
>>>
>>> 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?
>>
>>
>> I think the pass naming scheme needs a lot of work. The naming conventions seem random at times. For instance, I can never remember how to refer to PrologEpilogInserter. The DEBUG_TYPE name is “prologepilog”, the pass class name is “PEI”. I would expect this to be prolog-epilog-inserter to match the file and formal pass name, and consistently use dashes as word separators.
> Can I suggest we allow aliases? We can except all of these names, pick a canonical name, migrate tests, and only remove the aliases once the new canonical names are widely known.
> An alias sounds good.
In what contexts? I think aliases for the handful of potentially end user facing cases may be acceptable, but would worry about adding aliases everywhere. I think renaming things directly referring to a pass can be done pretty easily with a simple script?
-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200624/38ba5980/attachment.html>
More information about the llvm-dev
mailing list