Call to scGeneralizeExts
in crucible_llvm_verify
is a performance bottleneck
#626
Labels
crucible/jvm
Related to crucible-jvm verification
crucible/llvm
Related to crucible-llvm verification
performance
Profiling shows that on some proof goals (some of the s2n proofs in particular), the following call to
scGeneralizeExts
takes up a significant portion of the total runtime ofcrucible_llvm_verify
:saw-script/src/SAWScript/Crucible/LLVM/Builtins.hs
Line 403 in faf2dee
There is also similar call to
scGeneralizeExts
incrucible_jvm_verify
:saw-script/src/SAWScript/Crucible/JVM/Builtins.hs
Line 276 in faf2dee
The purpose of
scGeneralizeExts
is simply to convert external constants into local variables, which the saw backends were initially designed to handle. Instead of doing this possibly-expensive pre-processing step, we should just make sure that the various saw-core simulator backends can handle external constants in the same way that they handle local variables.The text was updated successfully, but these errors were encountered: