slyubomirsky opened a new pull request, #15474: URL: https://github.com/apache/tvm/pull/15474
This PR implements a simple simplification pass that applies various other simplification passes until fixpoint (i.e., apply them until the module stops changing). This probably should not be part of the standard compilation, since it has the potential to repeat passes many times, but I doubt that we would be in danger of having it happen that much. Incidentally, it also fixes a bug that I happened to discover in the binding canonicalization pass: It did not handle the case of a non-dataflow var being bound to a dataflow var and gave a segfault if it was encountered. A few points of discussion: 1. I wasn't sure if constant folding should be included in this. I am not sure new opportunities for constant folding could arise with these passes, though maybe it's possible (if we could come up with an example). 2. There are many normalizations happening between each round but I encountered a bug when I tried to go function-by-function (StructInfo would not update correctly), so this manner of implementation ensures fewer headaches. Passes all assume that the input has been normalized so not doing it every time has the potential to cause unexpected errors. 3. Are there more simplifications we would like to throw in here? Lots of little passes like the dataflow block output folding behavior would now be a lot more feasible to just throw in here and see some use. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
