You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR moves the logic for filtering out specific harnesses (as
specified by the `--harness` & `--exact` Kani arguments) to the
compiler, allowing us to skip codegen for harnesses that will end up
being blocked by the filter. I’ve also added [a dev-build-only
assertion](https://github.com/AlexanderPortland/kani/blob/c6283ac0ec53f70bf6ab78f367b6443c25b5290c/kani-driver/src/metadata.rs#L103-L110)
to double check that we’re not doing codegen for any unused harnesses.
Based on testing, something like running `cargo kani --harness
estimator` on `s2n-quic-codec` used to take ~11s locally to compile 66
harnesses, but only 5 would end up being analyzed. Now, the same command
compiles only the 5 needed harnesses, taking just ~5s.
The downside of this is that the target crate now has to be recompiled
if the user runs Kani with differing harness filters but, if the idea in
#4212 is possible, that too could be avoided.
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
0 commit comments