-
Notifications
You must be signed in to change notification settings - Fork 44
SMT retry logic changes in Kore #3860
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
Conversation
There's significant improvement in KEVM performance:
|
be67972
to
e188f40
Compare
oneLineDoc _ = "DecidePredicateUnknown" | ||
oneLineDoc (DecidePredicateUnknown{message, predicates}) = | ||
Pretty.hsep | ||
[ Pretty.brackets "smt" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we put this in the oneLineContextDoc
(probably once the json logging is merged)?
-- do not retry the query on Unknown if the use-case is "soft", i.e. applying simplifications | ||
WarnDecidePredicateUnknown _ _ -> query |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So here is the reason for the speedup?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It appears so, yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...still not sure about the aggressive scaling.
We have seen people use --smt-retry-limit 10
. With a default timeout of 125ms, that means the last retry uses a timeout of ~2 minutes, with --smt-timeout 1000
(again seen in the wild), it will use a timeout of ~16 minutes.
We can merge it and see what it does in the hands of users, though.
Fixes #3859