-
Notifications
You must be signed in to change notification settings - Fork 273
Value sets: make pointers nondet only once #7716
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Value sets: make pointers nondet only once #7716
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## develop #7716 +/- ##
===========================================
+ Coverage 78.66% 78.69% +0.02%
===========================================
Files 1699 1699
Lines 194181 194219 +38
===========================================
+ Hits 152757 152835 +78
+ Misses 41424 41384 -40
☔ View full report in Codecov by Sentry. |
ed337e2
to
4833a24
Compare
I have now added a second commit that replaces the use of |
When `get_value_set_rec` discovers a nondet symbol it will consider the pointer pointing to any of the known objects (as of 3789670). It suffices to do this once for each run of `get_value_set`, even when multiple nondet symbols are encountered while traversing an expression. This reduces the symex time on the test of diffblue#7357 from 930 seconds to 404 seconds.
There is no change in behaviour here, just cleanup to avoid a use of `mutable` that was only put in place to keep the code churn to a minimum.
4833a24
to
88dd798
Compare
When
get_value_set_rec
discovers a nondet symbol it will consider the pointer pointing to any of the known objects (as of 3789670). It suffices to do this once for each run ofget_value_set
, even when multiple nondet symbols are encountered while traversing an expression.This reduces the symex time on the test of #7357 from 930 seconds to 404 seconds.
RFC: The initial implementation is done so as to be keep the change as small as possible. We will want to explore variants that avoid the use ofmutable
.