Expand description
Central home for every numeric limit / bound used across the analysis and verification pipeline.
Before this module, each limit lived as a module-local const/static next
to its consumer, so thresholds were duplicated (the 16-block inline cap
appeared in both the path graph and the runtime inliner) and hard to audit.
Keeping them all here mirrors crate::def_id: one flat, well-documented
location where a knob can be found and tuned without grepping the crate.
Everything is pub(crate); names that would otherwise collide across
modules (the two VISIT_LIMITs, the two MAX_DEPTHs) are prefixed with
their owning analysis.
ConstantsΒ§
- ALIAS_
VISIT_ πLIMIT - Visit cap for the alias-graph DFS/iteration in the default alias analysis.
- DEFAULT_
LOOP_ πCARRIED_ BACKEDGES - Fallback loop-carried distance used when a sink is loop-sensitive but the local transfer graph is too imprecise to calculate a better distance.
- DEFAULT_
NUMERIC_ πWITNESS_ ITERATION - Conservative first numeric witness when an index obligation is known to be induction-sensitive but the current summary cannot yet recover a concrete symbolic bound.
- FIELD_
LOAD_ πEFFECT_ BLOCK_ LIMIT - Max basic-block count for a local callee to be recognized as a pure
field-load (
_0 = (*_1).field) summary. - FROM_
RAW_ πPARTS_ WRAPPER_ BLOCK_ LIMIT - Max basic-block count for a local callee to be recognized as a
from_raw_partswrapper summary. - FUZZABLE_
MAX_ πDEPTH - Recursion depth cap for the fuzzable-type predicate.
- LOCAL_
INLINE_ πBLOCK_ LIMIT - A local callee is inlined into the path CFG only when its MIR is at most this many basic blocks. This is a transitive shape bound: local inlining recurses into the calleeβs own calls, so every inlined body multiplies the path-graph size. Cross-crate callees are exempt β they are inlined a single level and never recursed into, so their size is not bounded here.
- MAX_
AUTO_ πREPEAT - Caps how many times a loop body is unrolled during path enumeration; loop-heavy functions (e.g. UTF-16 decoders) scale super-linearly with it. Lower it to speed up verification at the cost of loop sensitivity (bugs that only manifest after more iterations can be missed).
- MAX_
DEREF_ πDEPTH - Recursion cap on nested dereferences while building a points-to graph.
- MAX_
FIELD_ πDEPTH - Recursion cap on nested field projection while building a points-to graph.
- MAX_
INLINE_ πDEPTH - Recursion depth bound for runtime inlining
([
crate::verify::vm::call::exec_inline_call]). Recursive inlining unwinds through the Rust call stack, so this caps nesting. - MAX_
STEP_ πSET_ SIZE - Cap on the number of monomorphization steps retained per API-dependency resolution.
- MAX_
TY_ πCOMPLX - Upper bound on type complexity accepted when resolving API-dependency output types.
- MAX_
VALUES_ πPER_ PATH - Hard cap on the number of values a single points-to path may materialize.
- MIN_
DATAFLOW_ πREPEAT - The first repeat depth that reliably exposes the existing delayed loop-carried pointer/state fixtures.
- PATH_
LIMIT π - Maximum number of paths collected per search β both whole-CFG enumeration
and per-checkpoint prefix collection. Overridable via the
--path-limitCLI flag. - POINTER_
ARITH_ πWRAPPER_ BLOCK_ LIMIT - Max basic-block count for a local callee to be recognized as a pointer-arithmetic (add/sub) wrapper summary.
- SAFEDROP_
VISIT_ πLIMIT - Visit cap for the SafeDrop graph DFS.
- SCC_
MAX_ πDEPTH - Maximum DFS depth for intra-SCC path enumeration.
- SCC_
MAX_ πPATH_ LEN - Maximum path length within an SCC traversal.
- SCC_
MAX_ πSEEN_ PATHS - Maximum number of distinct paths collected per SCC.
- SCC_
PATH_ πCACHE_ LIMIT - Bounded cache size for SCC path enumeration.
- SLICE_
BOUNDED_ πRETURN_ BLOCK_ LIMIT - Max basic-block count for a local callee to be recognized as a slice-bounded return summary.
- WHOLE_
CFG_ πPATH_ DEPTH_ LIMIT - Maximum DFS depth for whole-CFG path enumeration.
StaticsΒ§
- PATH_
LIMIT_ πOVERRIDE - Runtime override for
PATH_LIMIT, set from--path-limit.0means βnot overriddenβ (the default above applies).
FunctionsΒ§
- path_
limit π - The effective path cap (override, or
PATH_LIMIT). - set_
path_ πlimit - Set the
--path-limitoverride;0restoresPATH_LIMIT.