<div dir="auto">The purpose of C++ class names is to use it as key to the table. If you can assign an unique key to each pass inherited from PassInfoMixin then that will serve the purpose. But the idea of keeping a central map is useful for programmers' productivity.<div dir="auto"><br></div><div dir="auto"><br><div dir="auto"><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 3, 2021, 2:12 AM Arthur Eubanks via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">aeubanks added a comment.<br>
<br>
I don't really like having C++ class names leak anywhere, it's at best implementation defined and as mentioned leads to incompatibilities between compilers.<br>
If we create a table, we have to duplicate class names and make sure they're in sync which doesn't seem ideal. I'm trying to reduce the number of things to worry about with the new PM, namely the difference between the 2 types of pass names.<br>
The legacy PM already didn't have C++ class names leaked and it seems like people were fine with not having a central list of class names for passes.<br>
<br>
For passes added in *TargetMachine, currently the name is duplicated, but I do plan on a follow-up change to easily register passes which will solve that.<br>
<br>
<br>
Repository:<br>
  rG LLVM Github Monorepo<br>
<br>
CHANGES SINCE LAST ACTION<br>
  <a href="https://reviews.llvm.org/D97722/new/" rel="noreferrer noreferrer" target="_blank">https://reviews.llvm.org/D97722/new/</a><br>
<br>
<a href="https://reviews.llvm.org/D97722" rel="noreferrer noreferrer" target="_blank">https://reviews.llvm.org/D97722</a><br>
<br>
</blockquote></div>