public interface

IEMasterOptimizer

implements IMasterOptimizer<T extends IOptimizerTarget>
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.IEMasterOptimizer
Known Indirect Subclasses

Class Overview

Base interface for IR master optimizers. The standard implementation is EMasterOptimizer.

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IMasterOptimizer
Public Methods
abstract void addDefaultInput(int bit, IEImm val)
abstract void addDisregardedOutputBits(Collection<Integer> disregardedOutputBits)
abstract void addDisregardedOutputFilter(IEOptFilterCanDiscard filter)
abstract void addDisregardedOutputVariables(Collection<? extends IEVar> disregardedOutputVars)
abstract boolean canDiscardReachingOutDefinition(IERoutineContext ectx, long insnAddress, int def)
Check if an unused variable definition, bleeding out from the routine, may be safely discarded.
abstract boolean canDiscardUnusedDefinition(IERoutineContext ectx, long insnAddress, int def)
Check if an unused variable definition, not bleeding out from the routine, may be safely discarded.
abstract IEImm getDefaultInput(int reg)
abstract Set<Integer> getDisregardedOutputRegisters()
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IMasterOptimizer

Public Methods

public abstract void addDefaultInput (int bit, IEImm val)

public abstract void addDisregardedOutputBits (Collection<Integer> disregardedOutputBits)

public abstract void addDisregardedOutputFilter (IEOptFilterCanDiscard filter)

public abstract void addDisregardedOutputVariables (Collection<? extends IEVar> disregardedOutputVars)

public abstract boolean canDiscardReachingOutDefinition (IERoutineContext ectx, long insnAddress, int def)

Check if an unused variable definition, bleeding out from the routine, may be safely discarded.

The implementation may depend on the master optimizer's mode.

Parameters
insnAddress instruction address
def defined, unused variable

public abstract boolean canDiscardUnusedDefinition (IERoutineContext ectx, long insnAddress, int def)

Check if an unused variable definition, not bleeding out from the routine, may be safely discarded.

The implementation may depend on the master optimizer's mode.

Parameters
insnAddress instruction address
def defined, unused variable

public abstract IEImm getDefaultInput (int reg)

public abstract Set<Integer> getDisregardedOutputRegisters ()