tqchen opened a new pull request #5154: [NODE][IR] Introduce StructuralEqual 
Infra for the unified IR.
URL: https://github.com/apache/incubator-tvm/pull/5154
 
 
   This PR introduces a new way to handle structural equality
   for both TIR and relay nodes in an extensive way.
   
   - Each object can now register an optional SEqualReduce function, which
     describes how to reduce its structural equality to another instance
     into equality of the children.
   - Optionally, the object can choose to allow remapping of vars(e.g. function 
parameters)
     by calling DefEqual
   - We implemented a non-recursive structural equality checker that
     recursively traverses the objects and does the structural equality 
checking.
   
   This PR also fixes a few potential problems in previous relay's AlphaEqual.
   
   - In particular, the new structural equality relation will be communicative.
   - It is can be dangerous to use same_as relation to quickly check equality,
     demonstrated by the following case. (%x, %y) are shared vars between two 
functions.
   
   - function0: fn (%x, %y) { %x + %y }
   - function1. fn (%y, %x) { %x + %y }
   
   The new structural equal is intented to supersede AlphaEqual and AttrsEqual.
   
   Follow-up PRs should be performed to redirect the existing usages, and 
removes
   the corresponding implementation.
   

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to