Constant propagation for individual fields through byte extract#6856
Merged
tautschnig merged 3 commits intodiffblue:developfrom Jun 30, 2022
Merged
Constant propagation for individual fields through byte extract#6856tautschnig merged 3 commits intodiffblue:developfrom
tautschnig merged 3 commits intodiffblue:developfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #6856 +/- ##
===========================================
- Coverage 77.81% 77.79% -0.02%
===========================================
Files 1568 1568
Lines 179975 180039 +64
===========================================
+ Hits 140044 140065 +21
- Misses 39931 39974 +43
Continue to review full report at Codecov.
|
0a8e99d to
6907f89
Compare
7f0b372 to
c36bd85
Compare
8 seconds seemed arbitrary, and we have now seen a failure on one platform, which might be just down to jitter. Increase the timeout to 15 seconds, which should be plenty.
The option --no-simplify should be honoured by field sensitivity. This also made apparent that we have tests that only pass thanks to the simplifier, and perhaps aren't even expected to pass. See diffblue#6101 for further discussion.
Field sensitivity in goto symex updates the full object as well as individual fields for divisible objects. The updates of individual fields, however, previously used index or member expressions on that full object. Consequently, constant propagation was only possible when the full-object assignment had a constant as the right-hand side. In some cases, however, only parts of the whole object might be constant. We are now able to constant propagate the fields covering those (constant) parts. Fixes: diffblue#6846
c36bd85 to
6193534
Compare
This was referenced Jun 23, 2022
peterschrammel
approved these changes
Jun 30, 2022
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.
Field sensitivity in goto symex updates the full object as well as
individual fields for divisible objects. The updates of individual
fields, however, previously used index or member expressions on that
full object. Consequently, constant propagation was only possible when
the full-object assignment had a constant as the right-hand side. In
some cases, however, only parts of the whole object might be constant.
We are now able to constant propagate the fields covering those
(constant) parts.
Fixes: #6846