Skip to content

Conversation

@leunam99
Copy link
Contributor

Adds an option that tries choosing some configurations automatically based on the file that is analyzed.
Already implemented:

  • Enable Congruence domain only in functions that use modulo and related ones
  • new widening thresholds
  • focus analysis depending on sv-comp specification
  • disable thread analyses if program is single threaded
  • disable interval contexts in recursive functions
    This is part of my bachelor thesis and still work in progress.

@sim642 sim642 self-requested a review July 1, 2022 05:05
@sim642 sim642 added feature student-job sv-comp SV-COMP (analyses, results), witnesses precision performance Analysis time, memory usage labels Jul 1, 2022
@sim642 sim642 added this to the SV-COMP 2023 milestone Jul 1, 2022
Copy link
Member

@sim642 sim642 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution!
Given that you've touched the SV-COMP files here already, I suppose you've already tried this on sv-benchmarks? If so, then does this already show some improvement there?

@leunam99
Copy link
Contributor Author

leunam99 commented Jul 1, 2022

I am testing with the sv-comp tests and there are some improvements.
For example, in the NoOverflow category Goblint is correct 104 instead of 81 times and uses a bit less time and memory (on my machine at least)
In the other categories there are also improvements, but I currently don't know the numbers

leunam99 added 6 commits July 11, 2022 13:58
Active if the loop uses malloc/threads/locks
Moved the creation of the CFG to seperate file to break dependency cycle
Comment cleanup
fixed handling of __builtin functions when setting congruence attributes
rename to autotune
find malloc wrappers
by variable, type attributes
Small fixes to loopheuristic
@sim642 sim642 mentioned this pull request Jul 27, 2022
Copy link
Member

@sim642 sim642 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to have complete SV-COMP before vs after runs with this to see how well this ad-hoc stuff works.

Co-authored-by: Simmo Saan <[email protected]>
@leunam99
Copy link
Contributor Author

leunam99 commented Sep 19, 2022

It would be good to have complete SV-COMP before vs after runs with this to see how well this ad-hoc stuff works.

I did this in my bachelor's thesis: pages 19 and 20 contain tables with the results of the different features and some further configurations. In the text surrounding it I describe a bit further what changed.

@sim642
Copy link
Member

sim642 commented Sep 23, 2022

Besides the couple of unresolved comments, the test group 58-array_annotations needs to be renumbered to 60-array_annotations to avoid conflict on master.

@michael-schwarz
Copy link
Member

@sim642 Any more comments here or are we good to merge?

@michael-schwarz michael-schwarz merged commit 9f677d7 into goblint:master Oct 10, 2022
sim642 added a commit that referenced this pull request Oct 10, 2022
sim642 added a commit that referenced this pull request Oct 11, 2022
sim642 added a commit that referenced this pull request Oct 11, 2022
sim642 added a commit to sim642/opam-repository that referenced this pull request Nov 25, 2022
CHANGES:

Functionally equivalent to Goblint in SV-COMP 2023.

* Add automatic configuration tuning (goblint/analyzer#772).
* Add many library function specifications (goblint/analyzer#865, goblint/analyzer#868, goblint/analyzer#878, goblint/analyzer#884, goblint/analyzer#886).
* Reorganize library stubs (goblint/analyzer#814, goblint/analyzer#845).
* Add Trace Event Format output to timing (goblint/analyzer#844).
* Optimize domains for address and path sets (goblint/analyzer#803, goblint/analyzer#809).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature performance Analysis time, memory usage precision student-job sv-comp SV-COMP (analyses, results), witnesses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants