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

Compile harnesses with the same set of stubs together #2514

Merged
merged 6 commits into from
Jun 14, 2023

Conversation

celinval
Copy link
Contributor

@celinval celinval commented Jun 9, 2023

Description of changes:

Improve Kani compiler to compile harnesses that have exact the same set of stubs in a single Rust compiler session. This reduces the number of times we compile a crate when it has multiple harnesses use the same set of stubs.

Resolved issues:

Resolves #2494

Related RFC:

Optional #1809

Call-outs:

We could optimize further by looking at the transitive rules of the stubbing logic and by looking at matching subset of stubs for cases where some stubs are unreachable.

Testing:

  • How is this change tested? New test

  • Is this a refactor change? No

Checklist

  • Each commit message has a non-empty body, explaining why the change was made
  • Methods or procedures are documented
  • Regression or unit tests are included, or existing tests cover the modified code
  • My PR is restricted to a single feature or bugfix

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

Improve Kani compiler to compile harnesses that have exact the same set
of stubs in a single Rust compiler session.
@celinval celinval requested a review from a team as a code owner June 9, 2023 22:44
@celinval celinval enabled auto-merge (squash) June 14, 2023 01:10
@celinval celinval merged commit 033c954 into model-checking:main Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reduce the compilation overhead for harnesses with the same set of stubs.
3 participants