Conversation
|
Marking as a draft while I confirm this change doesn't cause any regressions in ZK Vanguard. |
|
So is the idea with the lattice change that a lattice at a location will only contain entries for values defined at that location? If the interval analysis infers that a value |
Effectively, yes (the lattices also store their direct operands and the function argument values in the case of the interval analysis). I have a ticket for refactoring these analyses to use the MLIR sparse dataflow analysis (as it is likely ultimately better suited for these use cases), but there will be some more work in doing that (e.g., ensuring that symbol lookups function correctly and handling dependencies for non-result producing operations, which is part of why we initially used the dense analysis), so it is TODO for now. Tickets: https://veridise.atlassian.net/browse/LLZK-371, https://veridise.atlassian.net/browse/LLZK-372 |
|
@Veridise/zk-tooling-developers Marked as ready to review based on integration testing with ZK Vanguard. This PR now blocks https://github.com/Veridise/Vanguard/pull/822. |
SourceRefandIntervalAnalysislattices) by looking up values in prior lattices rather than propagating all values arbitrarily. This dramatically improves performance for large circuits.getSovlerhelper function return a mutableDataFlowSolver, which is required for most operations on the solver due to its internal caching.castoperations.