jroesch commented on pull request #10:
URL: https://github.com/apache/tvm-rfcs/pull/10#issuecomment-891293282


   Thanks for the work on this, after thinking about it for a while I believe 
the proposed hooks runs counter to goals of the TECompiler and "unified 
lowering" refactor that we've been working on in pieces. Our design goal is to 
not allow arbitrary customization of "lowering"  but instead seal it behind a 
stable interface. The lowering process should be a straight forward mapping 
from TE -> TIR, and then any necessary customization should be possible in 
resulting passes which are allowed to view the entire program including both 
the Relay code and TIR code.
   
   The goal is to remove the need for many slightly different code paths 
through the central parts of the compiler and instead provide standard 
interfaces that allow targets, and users to customize the compiler without 
having to touch any of the flows or modify the data structures.  The 
proliferation of customizations in the old compile engine for example makes it 
nearly impossible to refactor the compiler in its current state, and has lead 
to the world where we need lots of per-flow customization because the compiler 
is insufficiently factored into a common prefix of code. 
   
   I plan on providing a longer form document on this hopefully this week that 
argues this more in depth but I believe the tenants should be customization of 
the compiler happens via passes, passes only can produce IRModules, and all 
data is stored in the IRModule. Today's compiler requires a little more work to 
get to this world, but I think we should push in this direction.
   
   Now that doesn't mean the desire to have per target behavior is necessarily 
bad, but I think instead of overriding the lowering code with arbitrary 
functions we could provide hooks that allow the insertion of target specific 
passes at the "correct" time in the compiler flow. In this world the proposed 
hooks should return a `Pass` object which can be inserted after the appropriate 
phases. 
   
   Happy to discuss more, and have others such as @electriclilies @csullivan 
@mbs-octoml 


-- 
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