- It provides a unified style to express graph and kernel for user.
- It provides a unified IR to represent graph and kernel for developer.
- It breaks the boundary between graph and kernel.
- It provides more opportunities to do compile optimization.
Signed-off-by: Hoai Linh Tran h00472437 <hoai.linh.tran@huawei.com>
Add optimizer checking: For a group of passes in "optimizer", if flagged then it will check and collect the newly generated nodes without types (i.e. abstract() == nullptr).
Before calling Renormalize(), the optimizer will check if there is any node needed retyping. If not the Renormalize pass will not be called.
Add checking for non-null abstract but still needs renorm;
Add flags to Substitution to help watching Renormalize
Simpler pass result checker, change Bool to Enum type