com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer<T> |
![]() |
Plugin interface for generic code optimizer. This interface is currently used to define IR and
AST optimizers used by JEB Native Analysis Pipeline components. Optimizers are managed and
invoked by a master-optimizer
.
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 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()
Specify the maximum master-optimizer threshold.
| ||||||||||
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.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Signify no post-processing action.
Post-processing action: run the clean-up optimizers registered with the MO only, eg dead-code removal.
Post-processing action: do a full optimization pass, per the current master optimizer managing this optimizer.
Get the optimizer default priority. Higher value means higher priority. Priorities are used
by master optimizers
to order optimizers.
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.
PPA_*
constants; 0 means none
This method is used for on-demand optimizers only.
Specify the maximum master-optimizer threshold. Refer to AbstractMasterOptimizer
for
existing thresholds.
Get the optimizer's target.
Perform the optimization pass.
Set the optimizer's target.