Skip to content

Autotune: Conditionally activate congruence integer domain#911

Merged
michael-schwarz merged 4 commits intomasterfrom
autotune_congruence
Nov 22, 2022
Merged

Autotune: Conditionally activate congruence integer domain#911
michael-schwarz merged 4 commits intomasterfrom
autotune_congruence

Conversation

@jerhard
Copy link
Copy Markdown
Member

@jerhard jerhard commented Nov 17, 2022

This PR extends the autotuner to be able to enable the congruence domain for a whole program. Previously, the autotuner only activated the congruence domain for functions that contain the %-operator (remainder) or were called by such functions.

However, the congruence domain may be useful even in some cases when the program does not contain the remainder operator. Therefore the congruence domain is activated on a program when there is still some "autotuner fuel" left for the configuration. This should enable the domain on small programs.

The formulas for computing the cost and value option were chosen as something that seemed sensible, but were not fine-tuned.

This PR also adds the congruence option to the autotuner in the svcomp23.json configuration. That means that the autotuner may activate the congruence domain, on a function level or for a whole program.

…on the whole program.

Enables congruence domain on whole program when there is enough complexity-'fuel' left
Enabling this option has two effects: (a) The congruence domain is enabled for functions that use modulo,
and (b) the congruence domain is globally enabled for programs where there is still some autotuner "fuel" for the program.
@jerhard jerhard added the sv-comp SV-COMP (analyses, results), witnesses label Nov 17, 2022
@jerhard jerhard added this to the SV-COMP 2023 milestone Nov 17, 2022
@jerhard jerhard self-assigned this Nov 17, 2022
By removing the setting, the autotuner will not enable congruences with this configuration.
michael-schwarz added a commit to manuel-pietsch/analyzer that referenced this pull request Nov 18, 2022
@michael-schwarz
Copy link
Copy Markdown
Member

  • For reach safety, the overall impact is still negative, but we succeed on many interesting tasks.
  • For no overflow, we see a small positive impact.
  • For no data race, there is no impact.

Julian is working on fine-tuning the parameters now.

@michael-schwarz
Copy link
Copy Markdown
Member

I started another run with the new optimization.

@michael-schwarz
Copy link
Copy Markdown
Member

As this is deactivated by default and the issue we uncovered is not here, I am merging this now.

@michael-schwarz michael-schwarz merged commit 00bfa7f into master Nov 22, 2022
@michael-schwarz michael-schwarz deleted the autotune_congruence branch November 22, 2022 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sv-comp SV-COMP (analyses, results), witnesses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants