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]

Reply via email to