angr.analyses.decompiler.redundant_label_remover

class angr.analyses.decompiler.redundant_label_remover.RedundantLabelRemover

Bases: object

Remove redundant labels.

This optimization pass contains two separate passes. The first pass (self._walker0) finds all redundant labels (e.g., two or more labels for the same location) and records the replacement label for redundant labels in self._new_jump_target. The second pass (self._walker1) removes all redundant labels that (a) are not referenced anywhere (determined by jump_targets), or (b) are deemed replaceable by the first pass.

__init__(node, jump_targets)
Parameters:

jump_targets (set[tuple[int, int | None]])