<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 24, 2020, at 19:17, Arthur Eubanks <<a href="mailto:aeubanks@google.com" class="">aeubanks@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><div class="gmail_quote" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div dir="ltr" class="gmail_attr">On Wed, Jun 24, 2020 at 12:23 PM Philip Reames <<a href="mailto:listmail@philipreames.com" class="">listmail@philipreames.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><p class=""><br class=""></p><div class="">On 6/24/20 11:21 AM, Matt Arsenault via llvm-dev wrote:<br class=""></div><blockquote type="cite" class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Jun 24, 2020, at 14:13, Arthur Eubanks via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hi,<div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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`.</div><div class=""><br class=""></div><div class="">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<br class=""><font face="monospace" class="">INITIALIZE_PASS_BEGIN(BasicAAWrapperPass, "basicaa",<br class=""> <span class="Apple-converted-space"> </span>"Basic Alias Analysis (stateless AA impl)", true, true)</font><br class=""></div><div class="">but named "basic-aa" under the NPM</div><div class=""><font face="monospace" class="">FUNCTION_ALIAS_ANALYSIS("basic-aa", BasicAA())<br class=""></font></div><div class="">. Almost all the other AA passes have a dash in them so I think it makes sense to rename "basicaa" -> "basic-aa".</div><div class=""><br class=""></div><div class="">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?</div></div></div></blockquote></div><div class=""><br class=""></div><div class="">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.</div></blockquote>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. <span class="Apple-converted-space"> </span><br class=""></div></blockquote><div class="">An alias sounds good. </div></div></div></blockquote><br class=""></div><div>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?</div><div><br class=""></div><div>-Matt</div><br class=""></body></html>