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. | |||||||||
double | PRIORITY_HIGH | ||||||||||
double | PRIORITY_LOW | ||||||||||
double | PRIORITY_STANDARD |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract OptimizerClassId |
getClassId()
Retrieve the class id of this optimizer.
| ||||||||||
abstract double |
getDefaultPriority()
Get the optimizer default priority.
| ||||||||||
abstract IMasterOptimizer<T> |
getMasterOptimizer()
Retrieve the optional master optimizer that manages this optimizer.
| ||||||||||
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 OptimizerMode |
getRequiredModeThreshold()
Specify the maximum master-optimizer threshold.
| ||||||||||
abstract OptimizerType |
getType()
Retrieve the type of this optimizer.
| ||||||||||
abstract int |
perform(T target)
Perform the optimization pass.
| ||||||||||
abstract void |
setMasterOptimizer(IMasterOptimizer<T> mo)
Set an optional master optimizer that manages this optimizer.
|
[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.
Retrieve the optional master optimizer that manages this optimizer.
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.
Perform the optimization pass.
Set an optional master optimizer that manages this optimizer.
mo | optional |
---|