-
Notifications
You must be signed in to change notification settings - Fork 88
Bitfield Domain #1623
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
Merged
Merged
Bitfield Domain #1623
Changes from all commits
Commits
Show all changes
244 commits
Select commit
Hold shift + click to select a range
9b0002f
initial tests
ManuelLerchner 582630c
implement first bad solution
ManuelLerchner 3042aae
begin int domain rewrite to include bitfield
ManuelLerchner a609f3d
fix bitfield domain
ManuelLerchner 696c110
Draft of incredibly messy impls of bitfield shift operations that nee…
iC4rl0s 0630662
some bug fixes
fd89907
implemented add, sub and mul
8a91829
reverted some changes due to incorrect implementations
5c0fdbb
optimized shifts that concretize the shifting constants from an abstr…
iC4rl0s 087d4a9
minor bug in max_shift
iC4rl0s 0116023
comparison bug in max_shift
iC4rl0s 03961c0
begin overflow handling
ManuelLerchner d42b989
separation of break_down into break_down_to_const_bitfields and break…
iC4rl0s 6a26669
clean up; begin other methods
ManuelLerchner 05b3d8e
format
ManuelLerchner 27c9876
make it more functional. untested
iC4rl0s ca7c040
bug fix: Bitfields with z set to zero missed
iC4rl0s 1338d65
Implementation of arithmetic operators (including neg) (#8)
AdrianKrauss 447db3d
fix comments
ManuelLerchner 3a00c0b
Merge branch 'master' into overflow-handling
ManuelLerchner 89294a9
delete bitfield ml
ManuelLerchner c78510b
fix
ManuelLerchner ec166cb
Merge pull request #5 from ManuelLerchner/overflow-handling
ManuelLerchner 1adccde
hotfix refinements
ManuelLerchner 2e05197
.
Draggon01 897d6a2
bitfield shifts pr ready
iC4rl0s 7d5913a
Merge branch 'master' into bitfield-shifts. Doesnt compile yet
ManuelLerchner 257cc5b
added norm to almost every function which usess ikind
24b3719
added correct fil and deleted test file
cbfbf28
bug fix: signedness with right shift considered
iC4rl0s 87b0189
Merge branch 'bitfield-shifts' of github.com:ManuelLerchner/analyzer …
iC4rl0s ff8c4c7
refine hotfix2
ManuelLerchner d405853
Revert "refine hotfix2"
ManuelLerchner ffc7285
refine hotfix2
ManuelLerchner 5ec64ad
restore refine with congruence, as it was lost during merging
ManuelLerchner 8cd7e62
Merge branch 'master' into 10-extend-norm-to-arithmetic-operations
ManuelLerchner a31dc67
intDomain.ml is compilable
iC4rl0s 28d9db0
Avoiding unnecessary computation when min{b} > ceil(log2 max{a}) in s…
iC4rl0s 6177b13
begin first unit tests
ManuelLerchner 8e8b9cb
add simple shift unit tests
Draggon01 ed56bd8
Merge branch 'master' into bitfield-shifts
Draggon01 9ae2b8f
base test impl
Draggon01 874e1ed
merge unit tests
Draggon01 5ce8db7
add simple tests
Draggon01 4170f7f
fix small bug in constant shifting expecting isSigned ik to check if …
Draggon01 cd1bd06
Merge pull request #14 from ManuelLerchner/unit-tests
ManuelLerchner 5eafd97
Merge pull request #12 from ManuelLerchner/bitfield-shifts
ManuelLerchner 811590d
added bitfield to quickcheck
6999a20
two bug fixes
9f72163
Merge branch 'master' into 10-extend-norm-to-arithmetic-operations
ManuelLerchner c660277
Merge pull request #13 from ManuelLerchner/10-extend-norm-to-arithmet…
ManuelLerchner 146d858
hotfix compilationn
ManuelLerchner 55bc2b3
Merge branch 'master' into Add-tests
AdrianKrauss 90e1e99
Merge pull request #15 from ManuelLerchner/Add-tests
ManuelLerchner 6a32e42
hotfix compilation again
ManuelLerchner 47b7a56
hotfix name clash after merge
ManuelLerchner 5606e67
logand fix
ManuelLerchner 8b1fbfc
bug fixes for arith ops
4bf31cc
fixed norm
0b4b4a1
is_invalid and mul fix
15520a8
assertion function for shifts
iC4rl0s d55eab5
bug fix in get_bit and further tests that lead to fails
iC4rl0s 6562161
clean up
ManuelLerchner 2aa27f8
fix compile warnings
ManuelLerchner ad5f6f8
format
ManuelLerchner cfa0091
improve arbitrary
ManuelLerchner 98a2d24
Merge branch 'quickcheck-fixes' of github.com:ManuelLerchner/analyzer…
ManuelLerchner 5914695
fix bug after merge
ManuelLerchner 4a542be
Merge branch 'goblint:master' into master
ManuelLerchner 15f7abe
changed narrow and added unit tests for arith ops
f9f7fce
add some regression tests
ManuelLerchner 1b6459d
reworked bitfield shifts, infix operators and some simple tests. sign…
iC4rl0s 31def4b
shift a b = zero when min{b} >= ceil(log (Size.bit ik))
iC4rl0s 2ba8f38
negative shifts are undefined
iC4rl0s b6762af
bugfix: zero bits for lsb bitmask
iC4rl0s b6ee7fa
refactored min and max
a933c4e
Merge remote-tracking branch 'refs/remotes/origin/quickcheck-fixes' i…
e2366ff
added infix to all functions
addda52
extract tuple 6 from intDomain file
Draggon01 29bcca1
bugfix: shift_right did not shift right
iC4rl0s 7984a0a
to_pretty_bits displays concrete values for a small enough number of …
iC4rl0s ed1999a
small QoL improvements and bug fixes
iC4rl0s 7fa0100
bugfix: certain zeros and uncertain ones
iC4rl0s 96e5737
add regression test for refinement
ManuelLerchner 90338a7
add more regression tests for refines
ManuelLerchner f25a578
improve refine with interval; add regression tests
ManuelLerchner e9286e7
fixed bitshifts
Draggon01 3e4928a
removed commmented code and old wrong testcases
Draggon01 9bcd884
fixed edge case where shift with 0 was done without zero in shifting bf
Draggon01 6fe1162
added of bitfield for refinements
5301322
Merge pull request #18 from ManuelLerchner/quickcheck-fixes
ManuelLerchner 0fa8ca7
Merge branch 'master' of github.com:ManuelLerchner/analyzer into more…
ManuelLerchner bad0bb8
remove duplicate function
ManuelLerchner abde7e4
Revert "remove duplicate function"
ManuelLerchner 937b341
Reapply "remove duplicate function"
ManuelLerchner ddfaace
fix bug
ManuelLerchner 24f305f
add some more tests
ManuelLerchner 7c4411d
add missing regression tests
ManuelLerchner 6c2c570
simple refinements for base invariant with bitfields
f237a9e
shift_right and shift_left return bot when the result or the paramete…
iC4rl0s e4eefd9
added to_bitfield to refine base invariant further and regression test
8d4a4b8
Merge pull request #19 from ManuelLerchner/more-regression-tests
ManuelLerchner 8d7faf9
Merge pull request #20 from ManuelLerchner/extract-tuple-six
ManuelLerchner e2568fd
Merge branch 'master' of github.com:ManuelLerchner/analyzer into inva…
ManuelLerchner ccb13c1
Merge pull request #21 from ManuelLerchner/invariant
ManuelLerchner 88b0dfc
hotfix regression tests
ManuelLerchner 86fdeb5
Merge branch 'goblint:master' into master
ManuelLerchner 60fbbf5
improved property tests for bitshifts
iC4rl0s ed27d3d
fix show
ManuelLerchner 58eeeb4
Merge branch 'master' of github.com:ManuelLerchner/analyzer
ManuelLerchner dbe2e00
some property tests failed as generators were not constrained to the ik
iC4rl0s 810a966
fixed overflow in norm
d7b8755
renaming due to merge conflict
541a87d
Merge branch 'master' into overflow
AdrianKrauss 686633a
two bug fixes
4b3a0f8
improved logging
iC4rl0s dee9036
overflow behavior cannot be checked by property tests
iC4rl0s d6e3f61
more robust tests with a found bug
iC4rl0s e3145ad
revert to basic unit tests
iC4rl0s 6c720b8
Merge remote-tracking branch 'origin/overflow' into tests
iC4rl0s f09ead4
bug in exclude_undefined_bitshifts must be fixed or behavior defined
iC4rl0s 8b53b08
Added distinction between invalid and undefined bitshifts. In the for…
iC4rl0s c682527
added pape rreferences and refined div
7a8b3ad
added some more cases
Draggon01 8cf7192
more tests and overflow bugs detected. comment out TODO fails to see
iC4rl0s 79a859a
bugfix: zero shifted by anything should be zero
iC4rl0s bfe5dc6
Merge branch 'master' of github.com:goblint/analyzer into goblint-master
ManuelLerchner ed56056
Merge branch 'goblint-master'
ManuelLerchner f40fefb
refactored intDomain
e1d948d
Merge branch 'master' into tests
AdrianKrauss 57ac94a
merge
Draggon01 6c7f899
exclude bitfield in modules python script as other intdomains
Draggon01 313adb8
changed to top_of
ee9f358
merge
288bf0d
Merge remote-tracking branch 'refs/remotes/origin/tests' into tests
306aa33
improved refinements with bitfield
3862f2e
added overflow checking
Draggon01 b683875
added missing bf in create
Draggon01 26a23f5
bugfixes for overflow errs
iC4rl0s f70838d
Merge branch 'tests' of github.com:ManuelLerchner/analyzer into tests
iC4rl0s 2e85cc9
Merge pull request #22 from ManuelLerchner/tests
iC4rl0s 898a68e
fixed all current ocp-indent failures
Draggon01 0cc16dc
added regression test
Draggon01 65237fd
fixed overflow handling
5cf4620
Merge pull request #26 from ManuelLerchner/precission
ManuelLerchner dc68f48
Merge pull request #25 from ManuelLerchner/indent-fixes
ManuelLerchner 312b0c3
added adapted functions from interval domain to base
3034ad3
fixed bug in refine with congruence
1f08a87
fixed Div by zero exception
552c333
fixed overflow in bitshift
571cde3
removed test files
18ee9a9
removed unnecessary file
51c13e7
Merge branch 'goblint:master' into master
ManuelLerchner e7c3237
Merge branch 'master' into fixingBase
ManuelLerchner 1376824
Merge pull request #27 from ManuelLerchner/fixingBase
ManuelLerchner abb48c4
canonize interval-sets after refine with bitfield
ManuelLerchner dbe3f54
fixed wrong number of shifts in div
8bd36ce
Merge branch 'goblint:master' into master
ManuelLerchner 6ecd41e
changed overflow/underflow output on bitshifts with larger shifts tha…
Draggon01 5ba10f8
bug fix in rem
54856e0
Merge remote-tracking branch 'refs/remotes/origin/bugfixes' into bugf…
da57955
removed unnecessary variable
b54ca80
clean up's and one test case less
iC4rl0s 7dcec4c
further clean ups
iC4rl0s 89ff69b
improved undefined behavior handling for bitshifts
iC4rl0s cf7b349
change in regtest 82 08 to make it pass
iC4rl0s 1d78b29
Merge pull request #28 from ManuelLerchner/bugfixes
ManuelLerchner 4fe0097
Merge branch 'goblint:master' into master
ManuelLerchner 767f998
bug fix in to_bitfield()
821be43
bugfix: underflow handling
iC4rl0s a1807b6
Merge branch 'bugfixes' of github.com:ManuelLerchner/analyzer into bu…
iC4rl0s d276a14
swapped lines like told in pr
Draggon01 0a55d08
Merge pull request #29 from ManuelLerchner/bugfixes
ManuelLerchner 93c42e6
fix indent notes
Draggon01 e6bb07d
Merge branch 'goblint:master' into pull-request-feedback
Draggon01 fe99f61
fix indent issues in intDomainTest
Draggon01 4c5fc2d
removed ref from to_pretty_bits
Draggon01 8db7e6b
remaining smaller adjustements
5c229cc
removed open cil
2b7166d
refactored changes to base invariant
2fd9fd2
deduplication of code and added case distinction for unsigned types
3250a52
removed commented out code
15ad6f2
refactored concretize
iC4rl0s c91dfe6
updated invariant ikind
6675bdd
Merge remote-tracking branch 'refs/remotes/origin/pull-request-feedba…
df29c45
bug fixes in base invariant
91b2e54
fixed changes to join and meet
fbda7fe
comments
730aa9f
better code comments
008a078
add indentation in intervalDomain & updated concretize comment
Draggon01 d1061fb
improved of_bitfield for congruence
f096812
improved overflow handling
2b220a3
Merge branch 'master' into pull-request-feedback
AdrianKrauss a7a6605
Merge branch 'master' into overflow
AdrianKrauss 2ba0410
Merge pull request #31 from ManuelLerchner/overflow
AdrianKrauss 0a1b63d
fixed non-compilation
b84ebd3
Merge pull request #32 from ManuelLerchner/overflow
AdrianKrauss 41e0f9f
update overflows
9df142f
add some comments
ManuelLerchner 01c54fd
fix comment
ManuelLerchner a5e4a49
bug fix
5727755
Merge remote-tracking branch 'refs/remotes/origin/pull-request-feedba…
17c8f6b
fixed witness invariants
685ad69
bugfix: underflow handling
iC4rl0s 2e2294a
Added undefined behavior edge case. Shift is undefined iff the second…
iC4rl0s aca979f
simple refactoring resolves some confusion about the use of concretize
iC4rl0s 49244ba
bugfix: no under-/overflows with right shifts
iC4rl0s 12866c2
changes due to latest review
cb9ea62
Merge remote-tracking branch 'refs/remotes/origin/pull-request-feedba…
7d2a31e
remove outdated comment
ManuelLerchner eafafb1
add comment on how to interpret abstract type
ManuelLerchner d47691e
Merge branch 'master' into pull-request-feedback
Draggon01 34ba22b
Merge pull request #30 from ManuelLerchner/pull-request-feedback
ManuelLerchner 416e171
Merge branch 'goblint:master' into master
ManuelLerchner 5f6126d
added missing tracing to base invariant
6d163cf
fix comments and indentation of tests
ManuelLerchner 154e568
print unknown bits as ? (question-mark)
ManuelLerchner f033b65
also use ? instead of ⊤ in tests
ManuelLerchner 0159653
fix typo in comment
ManuelLerchner e14c5be
Merge pull request #33 from ManuelLerchner/pull-request-feedback
ManuelLerchner 08937f6
hotfix indentation warnings
ManuelLerchner 987531c
add join tests
ManuelLerchner 2ae4aa3
remove redundant string_of_ik
iC4rl0s ee034b1
refactoring: better comment for bit shifts
iC4rl0s 2860c28
changes due to the code review of simmo
fff0af4
removed flag from dbg.test.domain
395b754
simplify gobTuple
ManuelLerchner ed92bea
only show full bitfield information when dbg.full-output is enabled
ManuelLerchner f09ac82
Merge branch 'master' into pull-request-feedback
ManuelLerchner e214f91
remove polymorphic equality checks, improve description of arbitrary
ManuelLerchner b846424
better name for deduplication of shift logic
iC4rl0s 932f61f
Merge pull request #34 from ManuelLerchner/pull-request-feedback
ManuelLerchner 37a0525
hotfix indentation
ManuelLerchner 695c6af
improve comment
ManuelLerchner 090c235
replaced get_arch_bitwidth with check on width of ILongLong + SAR doe…
iC4rl0s c048dad
Merge branch 'pull-request-feedback' of github.com:ManuelLerchner/ana…
ManuelLerchner 5984f25
Merge branch 'master' into master
ManuelLerchner aa70d56
move regression tests to 83-bitfield
ManuelLerchner d740274
use derived equal
ManuelLerchner 1ab8bf1
rewrite leq function to use bits directly
ManuelLerchner 4ae7ed1
fix indentation
ManuelLerchner 9e5c99d
change refinement as requestet
Draggon01 c1805ea
Merge pull request #35 from ManuelLerchner/pull-request-feedback
ManuelLerchner 98a779e
Merge branch 'master' into master
ManuelLerchner File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.