Thanks for all the effort @aeubanks ! Left some comments inline.
To me, "automatic pass registration" equals "static registration". However, IIUC, this is meant to cover both "static" and "dynamic" registration. And the first sentence here suggests that only static/automatic registration is covered.
Can you elaborate a bit? This isn't needed for Bye, is it? So when would it be needed?
"Bye" is already included in llvm/Support/Extension.def (if enabled in CMake configuration).
This needed is when you want to write a tool (like opt, bugpoint, ...) that uses the NPM pipeline builder to automatically add pass-extension plugins (such as "Bye") when creating an O1/O2/... pipeline (in addition to a the pre-registered set of passes). I.e. that does not just happen automatically if the tool itself does not add code for it.