public interface

IOptimizer

com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer<T>
Known Indirect Subclasses

Class Overview

Definition of a generic optimizer.

Summary

Constants
int PPA_NONE Signify no post-processing action.
int PPA_OPTIMIZATION_PASS_CLEANUP Post-processing action: run the clean-up optimizers registered with the MO only, eg dead-code removal.
int PPA_OPTIMIZATION_PASS_FULL Post-processing action: do a full optimization pass, per the current master optimizer managing this optimizer.
Public Methods
abstract OptimizerClassId getClassId()
Retrieve the class id of this optimizer.
abstract double getDefaultPriority()
Get the optimizer default priority.
abstract IBasicInformation getInformation()
Retrieve basic authoring information about this information, such as name, description, version, etc.
abstract int getPostProcessingAction()
Get the action that should be executed after the optimizer was executed successfully and optimized code.
abstract int getPreferredExecutionStage()
This method is used for on-demand optimizers only.
abstract int getRequiredModeThreshold()
abstract T getTarget()
Get the optimizer's target.
abstract OptimizerType getType()
Retrieve the type of this optimizer.
abstract int perform()
Perform the optimization pass.
abstract T setTarget(T target)
Set the optimizer's target.

Constants

public static final int PPA_NONE

Signify no post-processing action.

Constant Value: 0 (0x00000000)

public static final int PPA_OPTIMIZATION_PASS_CLEANUP

Post-processing action: run the clean-up optimizers registered with the MO only, eg dead-code removal.

Constant Value: 2 (0x00000002)

public static final int PPA_OPTIMIZATION_PASS_FULL

Post-processing action: do a full optimization pass, per the current master optimizer managing this optimizer.

Constant Value: 1 (0x00000001)

Public Methods

public abstract OptimizerClassId getClassId ()

Retrieve the class id of this optimizer.

public abstract double getDefaultPriority ()

Get the optimizer default priority. Higher value means higher priority. Priorities are used by master optimizers to order optimizers.

Returns
  • the default priority

public abstract IBasicInformation getInformation ()

Retrieve basic authoring information about this information, such as name, description, version, etc.

public abstract int getPostProcessingAction ()

Get the action that should be executed after the optimizer was executed successfully and optimized code. Post-processing actions may involve re-optimizing; if so, re-optimizations are not performed recursively, ie, post-processing actions will not trigger additional post-processing actions.

Returns
  • one of PPA_* constants; 0 means none

public abstract int getPreferredExecutionStage ()

This method is used for on-demand optimizers only.

public abstract int getRequiredModeThreshold ()

public abstract T getTarget ()

Get the optimizer's target.

public abstract OptimizerType getType ()

Retrieve the type of this optimizer.

public abstract int perform ()

Perform the optimization pass.

Returns
  • the number of optimizations performed; if negative, an error has occurred and the optimizing process should be aborted

public abstract T setTarget (T target)

Set the optimizer's target.