tqchen commented on PR #20327:
URL: https://github.com/apache/tvm/pull/20327#issuecomment-5649261687

   Validation for `45897c33f407e689effe7c172b26916a9a7dc9ce`:
   
   The generic `ExprFunctor` hooks are now `Dispatch_` and `DispatchDefault_`; 
public `VisitExpr` is unchanged. The existing three generic-functor cases were 
freshly compiled and run in normal and no-devirtualization modes against the 
updated header, including an added derived `DispatchDefault_` assertion. They 
cover ancestor and independent-extension dispatch, the public entry override, 
missing/default errors, null input, move-only and reference arguments, and 
void/reference returns. Changed-file lint passes.
   
   Before this generic naming correction, coherent builds passed 50 tests per 
mode across the existing focused, mutation-contract, Visitor and generic 
suites, plus the reference comparison, fixture checks and live dispatch-table 
binding checks. All 35 Visitor and 35 Mutator callbacks bind to their 
corresponding compiler library; extension registration also passes. The final 
correction changes only generic hook identifiers and one formatting adjustment. 
Native Visitor/Mutator source and the public FFI dependency remain unchanged. 
No broad rebuild or performance rerun was needed for that correction; the full 
upstream CI suite remains separate from these local checks.
   
   The fresh post-publication correctness audit checked native hook fields and 
ordering against registered defaults, copy-on-write permission propagation, Let 
definition-region restoration, dispatch/fallback boundaries, owning 
error/interrupt results and exactly-once context attachment. Its final 
generic-naming supplement checks both hook names, default customization and 
argument/result forwarding. No actionable correctness issue was found in these 
paths. Primitive-typed Vars retain the documented native early-return behavior.
   
   The direct Visitor/StructuralWalk comparison below was measured before the 
generic-only naming correction, with the same native traversal implementation. 
Values are medians of ten process medians in ns/node; lower is faster.
   
   | Mode | Fixture | Visitor | StructuralWalk |
   |---|---|---:|---:|
   | Normal | Split | 4.9359 | 6.4724 |
   | Normal | Seq64 | 5.8704 | 6.3732 |
   | No devirtualization | Split | 5.3384 | 6.1623 |
   | No devirtualization | Seq64 | 6.2853 | 5.5837 |
   
   All 80 processes and 720 raw samples are retained. Visitor wins 10/10, 
10/10, 8/10 and 0/10 paired comparisons respectively; the no-devirtualization 
Split result has visible variation. Both arms use the original fixtures and 
borrowed roots, with construction and checks outside timing. Walk uses 
postorder traversal with a typed Var callback, so its callback surface differs 
from the native Visitor. This is a bounded comparison, not a universal 
performance claim.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to