Skip to content

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

Closed
tautschnig wants to merge 33 commits into
developfrom
sv-comp19
Closed

Patch set for SV-COMP'19 [depends-on: #2000, #3462]#3486
tautschnig wants to merge 33 commits into
developfrom
sv-comp19

Conversation

@tautschnig

@tautschnigtautschnig commented Dec 1, 2018

Copy link
Copy Markdown
Collaborator

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.

tautschnigand 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.
@tautschnigtautschnig 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
Copy Markdown
Contributor

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

@tautschnigtautschnig changed the title Patch set for SV-COMP'19Patch set for SV-COMP'19 [depends-on: #1992, #1996, #1997, #2000, #2001, #3462, #4269..#4272]Feb 25, 2019
@tautschnigtautschnig 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
@tautschnigtautschnig 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]
@tautschnigtautschnig 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]
@tautschnigtautschnig 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]
@tautschnigtautschnig 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
Copy Markdown
CollaboratorAuthor

Closing as the remaining patches of PRs of their own.

tautschnig added a commit that referenced this pull request May 19, 2021
Do not unnecessarily sort guard conjuncts [blocks: #3486]
Sign up for freeto 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

@tautschnig@owen-mc-diffblue@peterschrammel@marek-trtik@lucasccordeiro