angr.analyses.decompiler.peephole_optimizations.base

class angr.analyses.decompiler.peephole_optimizations.base.PeepholeOptimizationStmtBase

Bases: object

The base class for all peephole optimizations that are applied on AIL statements.

NAME = 'Peephole Optimization - Statement'
DESCRIPTION = 'Peephole Optimization - Statement'
stmt_classes = None
__init__(project, kb, ail_manager, func_addr=None, preserve_vvar_ids=None, type_hints=None)
Parameters:
project: Project | None
kb: KnowledgeBase | None
manager
func_addr: int | None
preserve_vvar_ids: set[int]
type_hints: list[tuple[VirtualVariable | MemoryLocation, str]]
optimize(stmt, stmt_idx=None, block=None, **kwargs)
Parameters:

stmt_idx (int | None)

class angr.analyses.decompiler.peephole_optimizations.base.PeepholeOptimizationMultiStmtBase

Bases: object

The base class for all peephole optimizations that are applied on multiple AIL statements at once.

NAME = 'Peephole Optimization - Multi-statement'
DESCRIPTION = 'Peephole Optimization - Multi-statement'
stmt_classes = None
__init__(project, kb, ail_manager, func_addr=None, preserve_vvar_ids=None, type_hints=None)
Parameters:
project: Project | None
kb: KnowledgeBase | None
manager
func_addr: int | None
preserve_vvar_ids: set[int]
type_hints: list[tuple[VirtualVariable | MemoryLocation, str]]
optimize(stmts, stmt_idx=None, block=None, **kwargs)
Parameters:
class angr.analyses.decompiler.peephole_optimizations.base.PeepholeOptimizationExprBase

Bases: object

The base class for all peephole optimizations that are applied on AIL expressions.

NAME = 'Peephole Optimization - Expression'
DESCRIPTION = 'Peephole Optimization - Expression'
expr_classes = None
__init__(project, kb, ail_manager, func_addr=None, preserve_vvar_ids=None, type_hints=None)
Parameters:
project: Project | None
kb: KnowledgeBase | None
manager
func_addr: int | None
preserve_vvar_ids: set[int]
type_hints: list[tuple[VirtualVariable | MemoryLocation, str]]
optimize(expr, *, stmt_idx=None, block=None, **kwargs)
Return type:

Expression | None

Parameters:

stmt_idx (int | None)

static find_definition(ail_expr, stmt_idx, block)
Return type:

None

Parameters:
static is_bool_expr(ail_expr)