angr.utils.ssa.combined_uses_collector¶
Combined walker that collects VVar uses + Tmp uses in a single pass.
SPropagator’s _analyze historically called four separate helpers
(get_vvar_deflocs, get_vvar_uselocs, get_tmp_deflocs,
get_tmp_uselocs) against the same set of blocks. Each of the two
_uselocs helpers spun up its own AILBlockViewer and walked
every block independently.
Folding both use-collectors into a single walker halves the
walk-the-block cost (one _handle_expr dispatch chain per visited
node, not two) and is a drop-in replacement: the per-block tmp use
extraction matches TmpUsesCollector’s shape and the cross-block
vvar use accumulator matches VVarUsesCollector’s.
- class angr.utils.ssa.combined_uses_collector.VVarAndTmpUsesCollector¶
Bases:
AILBlockViewerCollect VVar uses + Tmp uses in a single pass.
See
VVarUsesCollector/TmpUsesCollectorfor the per-side semantics. This combined version inherits both:vvar_and_uselocsaccumulates across all blocks walked (consumer extracts when done).tmp_and_uselocsis intended to be extracted per-block;reset_tmp_uses_only()clears just the tmp side without losing the cross-block vvar accumulator.
- __init__()¶
- Return type:
None