[PATCH] D16483: Require MachineFunctionPasses to declare their support for virtual registers.

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 4 15:35:29 PST 2016

hfinkel added inline comments.

Comment at: include/llvm/CodeGen/MachineFunctionPass.h:61
@@ -57,2 +60,3 @@
 } // End llvm namespace
+#define SUPPORTS_VIRTUAL_REGISTERS   bool getSupportsVirtualRegisters() const override { return true; }
I think that what you gain in brevity you lose in clarity, because while the macro is shorter than the function call, it is now not immediately obvious what it does. Just include the function override.

An alternative is to make it an argument to the MachineFunctionPass constructor.

Also, I'm not entirely sure this is a problem worth solving, at least not as a one-off. We already have passes that only work either before or after register allocation, in or not in SSA form, before or after PHI elimination, etc. -- and we don't explicitly declare any of that.

Generically, it would be nice to express these dependencies in a more-consistent way, and I'm in favor of something that let's us do that. We already have a facility in the pass manager to express requirements, maybe we can build on that?


More information about the llvm-commits mailing list