Enable CBMC's equation-level slicer#1252
Merged
zhassan-aws merged 1 commit intomodel-checking:mainfrom Jun 8, 2022
Merged
Conversation
adpaco-aws
approved these changes
Jun 7, 2022
Contributor
adpaco-aws
left a comment
There was a problem hiding this comment.
The resource usage increase in the rectangle example is surprising but the improvement in other ones means this is likely to boost performance in more complex proofs.
We should consider in the future adding all "CBMC optimization" flags into another set and allow users to opt out of it. But there's no need to do that now because, if I'm not mistaken, we'll be adding this but not #1221.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of changes:
Use CBMC's equation-level slicer (
--slice-formula). This results in a nice performance boost in some cases (e.g. s2n-quic's vectored_copy_u8) as well as some memory reduction.--slice-formulaResolved issues:
Resolves #ISSUE-NUMBER
Call-outs:
The known side effect of using
--slice-formulais that the trace generated by CBMC might exclude assignments to variables that are irrelevant to the check. This might actually be useful in since it could result in a smaller trace.Testing:
How is this change tested? Existing regressions
Is this a refactor change? No
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.