salsa-rs / salsa

A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.
https://salsa-rs.netlify.app/
Apache License 2.0
2.13k stars 152 forks source link

add example test for fixpoint iteration #570

Closed carljm closed 1 month ago

carljm commented 2 months ago

Add a test with a simplified example case where fixpoint iteration is needed in dataflow analysis.

Inputs are Definition, Use, and Literal (to simplify the example, we exclude parsing and just take the data flow structure as input) modeling a simple language with only the following constructs:

The added tests simple and union pass; the tests cycle_converges, cycle_diverges, and multi_symbol_cycle_converges hit a Salsa cycle and fail.

The initial goal of the fixpoint iteration feature (IMO) should be to make these tests pass (not exactly as-is; presumably some cycle-handling code will need to be added in some form, but exactly what that feature should look like is what we need to determine.)

netlify[bot] commented 2 months ago

Deploy Preview for salsa-rs canceled.

Name Link
Latest commit 167af0b0bd91b471e336a762ec57cafb7437a4b6
Latest deploy log https://app.netlify.com/sites/salsa-rs/deploys/67059dc4f8307300089cfcd0
codspeed-hq[bot] commented 2 months ago

CodSpeed Performance Report

Merging #570 will not alter performance

Comparing carljm:cycle-test (167af0b) with master (a20b894)

Summary

βœ… 8 untouched benchmarks