Skip to content

Patch set for SV-COMP'19 [depends-on: #2000, #3462] #3486

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

Closed
wants to merge 33 commits into from

Conversation

tautschnig
Copy link
Collaborator

@tautschnig tautschnig commented Dec 1, 2018

This is just to provide a to-do list of PRs to be created or existing PRs to be merged to put in place the fixes applied for CBMC's SV-COMP'19 submission. No review needed or expected.

tautschnig and others added 30 commits November 28, 2018 09:15
Check whether the object part of a pointer is greater or equal the total
number of objects, or equals a dynamic object that has not actually been
allocated on a given trace.
Benchmarks not including headers files fail as we only provided a definition of
__builtin_alloca, which alloca expands to in standard libary headers, but none
for alloca directly.
Iterating over all expression tress has considerable performance cost,
seemingly accounting for up to 10% of runtime (on SV-COMP benchmarks,
with profiling enabled).
This reduces the memory footprint by two pointers for both named_sub and
comments. The cost is that computing the size of lists and add/remove require
additional iterator increments.
On SV-COMP benchmarks, hashing accounts for >22% of CPU time (with
profiling enabled).
This is used by pthread-divine/tls_basic_true-unreach-call in SV-COMP.
As we internally use dynamic allocation, we previously did not distinguish
alloca-allocated from malloc/calloc-allocated ones.
They are too expensive due to extensive shared-variable use.
…object

With level-2 counters incremented on declaration and non-deterministic
initialisation upon allocation, the only remaining sources are pointer
dereferencing, where uninitialised objects necessarily refer to invalid objects.

This is a cleaner implementation of 369f077. Removing only the code
introduced in 369f077 would yield a wrong result for
regression/cbmc/Local_out_of_scope3.
@tautschnig tautschnig self-assigned this Dec 17, 2018
tautschnig added a commit that referenced this pull request Dec 19, 2018
Skip phi assignment if one of the merged states has an uninitialised object [blocks: #35, #2574, #3486]
@owen-mc-diffblue
Copy link
Contributor

@tautschnig #2220 has been merged, so you can tick it off

@tautschnig tautschnig changed the title Patch set for SV-COMP'19 Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4269..#4272] Feb 25, 2019
@tautschnig tautschnig changed the title Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4269..#4272] Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4272] Feb 28, 2019
@tautschnig tautschnig changed the title Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4272] Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4272, #4458] Mar 29, 2019
tautschnig added a commit that referenced this pull request May 8, 2019
Enable HASH_CODE by default to avoid repeated hash computation [blocks: #3486]
@tautschnig tautschnig changed the title Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4272, #4458] Patch set for SV-COMP'19 [depends-on: #1997, #2000, #3462, #4458] May 16, 2019
tautschnig added a commit that referenced this pull request May 28, 2019
Use std::forward_list instead of std::map in irept by default [blocks: #3486]
@tautschnig tautschnig changed the title Patch set for SV-COMP'19 [depends-on: #1997, #2000, #3462, #4458] Patch set for SV-COMP'19 [depends-on: #1997, #2000, #3462] May 28, 2019
tautschnig added a commit that referenced this pull request Jan 28, 2021
Do not sort operands as part of simplification [blocks: #3486]
@tautschnig tautschnig changed the title Patch set for SV-COMP'19 [depends-on: #1997, #2000, #3462] Patch set for SV-COMP'19 [depends-on: #2000, #3462] Jan 28, 2021
@tautschnig
Copy link
Collaborator Author

Closing as the remaining patches of PRs of their own.

@tautschnig tautschnig closed this May 1, 2021
tautschnig added a commit that referenced this pull request May 19, 2021
Do not unnecessarily sort guard conjuncts [blocks: #3486]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants