Conversation
|
I redid the comparison on ConcurrencySafety from sv-benchmarks, but with full SV-COMP resource limits. The output is currently here, but the important plots are screenshotted below: https://goblint.cs.ut.ee/results/259-concurrency-weak-deps-before/table-generator-cmp.table.html#/. Quantile plotsEvalsCPU timeScatter plots (before vs after-lazy)EvalsCPU timeDifferencesGoing from before to after-lazy also has an impact on 6 verdicts:
Although this doesn't give is more points in SV-COMP, these speedups are insane: at least 300×! Given all of this evidence, I'm proposing to make lazy weak dependencies the default in TD3. |
|
This looks good to me. Reminder that I cannot accepts PRs, hence the comment. |
sim642
left a comment
There was a problem hiding this comment.
I've now made no weak dependencies the default.
CHANGES: * Add division by zero analysis (goblint/analyzer#1764). * Add bitfield domain (goblint/analyzer#1623). * Add weakly-relational C-2PO pointer analysis (goblint/analyzer#1485). * Add widening delay (goblint/analyzer#1358, goblint/analyzer#1442, goblint/analyzer#1483). * Add narrowing of globals to top-down solver (goblint/analyzer#1636). * Add weak dependencies to top-down solver (goblint/analyzer#1746, goblint/analyzer#1747). * Add YAML ghost witness generation (goblint/analyzer#1394). * Remove GraphML witness generation (goblint/analyzer#1732, goblint/analyzer#1733, goblint/analyzer#1738). * Use C standard option for preprocessing (goblint/analyzer#1807). * Add bash completion for array options (goblint/analyzer#1670, goblint/analyzer#1705, goblint/analyzer#1750). * Make `malloc(0)` semantics configurable (goblint/analyzer#1418, goblint/analyzer#1777). * Update path-sensitive analyses (goblint/analyzer#1785, goblint/analyzer#1791, goblint/analyzer#1792). * Fix evaluation of library function arguments (goblint/analyzer#1758, goblint/analyzer#1761). * Optimize affine equalities analysis using sparse matrices (goblint/analyzer#1459, goblint/analyzer#1625). * Prepare for parallelism (goblint/analyzer#1708, goblint/analyzer#1744, goblint/analyzer#1748, goblint/analyzer#1781, goblint/analyzer#1790).




This is a rebase of (the relevant parts of) #1743 on top of #1746.
It was easier to cherry-pick the necessary commits from #1743 to avoid conflicts with #1746. Also #1743 includes changes to unrelated solvers which would've needed reverting anyway. So this way we get a cleaner history.
TODO