angr.analyses.decompiler.peephole_optimizations.remove_redundant_reinterprets

class angr.analyses.decompiler.peephole_optimizations.remove_redundant_reinterprets.RemoveRedundantReinterprets

Bases: PeepholeOptimizationExprBase

Simplify Reinterpret() expressions: nested and constant ones, the integer view VEX puts between a floating-point register and memory (Reinterpret(I->F, Load): memory is untyped, the load carries the float), and a view whose consumer expects the original type (an integer operation on Reinterpret(I->F, x) operates on x).

NAME = 'Simplifying nested, constant, and type-consistent Reinterprets'
expr_classes = (<class 'angr.ailment.expression.Reinterpret'>, <class 'angr.ailment.expression.BinaryOp'>, <class 'angr.ailment.expression.UnaryOp'>, <class 'angr.ailment.expression.Convert'>)
optimize(expr, **kwargs)
Parameters:

expr (Reinterpret | BinaryOp | UnaryOp | Convert)