tqchen commented on PR #780: URL: https://github.com/apache/tvm-ffi/pull/780#issuecomment-5646470819
Validation for `371a1991da04d7a37c02d323cb8d31561073982f`: - All 498 existing C++ tests passed; two preexisting tests remain disabled. AddressSanitizer instruments the test executable; the shared runtime is a normal Debug build. The local GCC build demoted the existing redundant-move warning from Werror. - The final diff preserves explicit `Optional<VisitInterrupt>` signatures and adds no tests. The only test-file change removes obsolete raw forwarding from an existing visitor layer. - All six optimized compiled hooks and the fixture's 17 logical occurrences/four Var matches were checked outside timing. AnyView pure Advance callback machinery erases; the typed Var-count callback retains its type probe and increment, while Advance result cleanup and callback-control branches disappear. Required child-result propagation remains. The latest GCC 11.4/O3 interleaved comparison used the same preserved executables and runtimes, with 12 processes per cell and all nine inner samples retained. Median ns per logical occurrence: | Executable source | Compiled-hook floor | Borrowed Var, Advance | Borrowed Var, count then Advance | | --- | ---: | ---: | ---: | | Initial optimization | 4.105 | 6.653 | 6.136 | | Reviewed optimization | 4.239 | 6.274 | 5.873 | The timed reviewed source precedes the final explicit-type/test cleanup. All 11 selected engine disassembly blocks are exactly identical in the final source; subsequent base alignment preserved the entire source tree. These are not new timings of the final commit. An earlier run was slower for both versions and their floors; the preserved binaries recovering together supports transient run conditions, although the exact cause is unproven. No samples were trimmed. The AnyView hot paths save five registers without local result slots or cleanup calls; the typed fixture also retains a 32-byte local frame/canary. These measurements remain above the narrower compiled-hook floor. Counting and pure Advance have different generated bodies, so their difference is not an isolated counting cost. -- 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]
