Skip to content
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

Use an llvm backend library in exec_prove with --use-booster #2069

Merged
merged 14 commits into from
Sep 19, 2023

Conversation

jberthold
Copy link
Member

Set llvm_definition_dir in exec_prove when use_booster == True.
Otherwise we might run with booster but will fall back to kore-rpc on every concrete term that needs hooks.

With this change, test address00-spec.k runs in 76 sec with --use-booster, while it takes 110 sec without (This includes the compilation time for the verification module, the actual speedup for running the proof is higher).

@jberthold
Copy link
Member Author

jberthold commented Sep 14, 2023

The activated LLVM backend causes issues in proof mcd/dai-symbol-pass-spec.k, the function #asByteStackInWidthaux is missing from the LLVM library because of the [symbolic] tag here.
Probably one needs to add a [symbolic] attribute to every lemma that introduces this function? not sure

@jberthold jberthold removed their assignment Sep 14, 2023
@ehildenb
Copy link
Member

Wow, good find!

@jberthold
Copy link
Member Author

I tried to remove the [symbolic] attributes from the verification modules in tests/specs/erc20 and tests/specs/mcd but that causes compilation issues because include/kframework/lemmas/lemmas.k is [symbolic], too, and its definitions are missing when compiling the now-not-symbolic mcd/verification.k.
Not sure about the best way forward here, probably we need to refactor more module headers, or craft a dedicated syntax module for llvm-targeted compilation.

@ehildenb
Copy link
Member

There are some more changes on this PR, which may help this one to pass. In particular:

@ehildenb
Copy link
Member

This looks ready to merge to me, any other blockers? The last require check is removed here: #2076

@ehildenb ehildenb marked this pull request as ready for review September 19, 2023 14:26
@rv-jenkins rv-jenkins merged commit f431756 into master Sep 19, 2023
12 checks passed
@rv-jenkins rv-jenkins deleted the HOTFIX-use-llvm-lib-in-booster-proofs branch September 19, 2023 17:24
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.

3 participants