| java.lang.Object | |
| ↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractMasterOptimizer<T> |
Known Direct Subclasses
|
Standard implementation of a generic master optimizer.
| Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| int | MODE_AGGRESSIVE | ||||||||||
| int | MODE_NORMAL | ||||||||||
| Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| protected int | currentMode | current optimization mode | |||||||||
| protected int | grp1NMaxRunCount | maximum run count for the group [1..N] (<0 means no limit) | |||||||||
| protected SortedMap<Integer, List<OptimizerEntry<T>>> | optGrpMap | groups of optimizers; groups 0 and -1 are entry and exit groups, respectively | |||||||||
| protected List<OptimizerEntry<T>> | optList | list of all optimizers | |||||||||
| protected T | t | default target | |||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
AbstractMasterOptimizer(T t, int grp1NMaxRunCount)
Create a master optimizer.
| |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| int | getMode() | ||||||||||
| OptimizerEntry<T> | getOptimizer(Class<? extends IOptimizer<T>> clazz) | ||||||||||
| IOptimizer<T> | getOptimizerObject(Class<? extends IOptimizer<T>> clazz) | ||||||||||
| List<OptimizerEntry<T>> |
getRegisteredOptimizers(int groupId)
Get a copy of the lists of optimizer entries registered with this MO and belonging to the
provided optimizer group.
| ||||||||||
| List<OptimizerEntry<T>> |
getRegisteredOptimizers()
Get a copy of the list of optimizer entries registered with this MO.
| ||||||||||
| T |
getTarget()
Get the target onto which the optimizations will be performed.
| ||||||||||
| int |
perform()
Perform an optimization round.
| ||||||||||
| int | perform(int depth) | ||||||||||
| int | performMultiple(List<OptimizerEntry<T>> list) | ||||||||||
| int | performSingle(OptimizerEntry<T> e) | ||||||||||
| OptimizerEntry<T> |
registerOptimizer(int group, IOptimizer<T> opt)
Register an optimizer, with its default priority.
| ||||||||||
| OptimizerEntry<T> |
registerOptimizer(IOptimizer<T> opt)
Register an optimizer to the main group, with its default priority.
| ||||||||||
| OptimizerEntry<T> |
registerOptimizer(int group, IOptimizer<T> opt, double priority)
Register an optimizer.
| ||||||||||
| int | setMode(int mode) | ||||||||||
| void |
setTarget(T t)
Set the optimizer's target.
| ||||||||||
| boolean |
unregisterOptimizer(OptimizerEntry<T> e)
Remove an optimizer.
| ||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| abstract void | debugValidate(T target) | ||||||||||
| abstract void | debugValidatePostOpti(T target, IOptimizer<T> opt, int cnt) | ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IMasterOptimizer
| |||||||||||
current optimization mode
maximum run count for the group [1..N] (<0 means no limit)
groups of optimizers; groups 0 and -1 are entry and exit groups, respectively
default target
Create a master optimizer.
| t | the default target, may be null |
|---|---|
| grp1NMaxRunCount | maximum run count for the group [1..N] |
Get a copy of the lists of optimizer entries registered with this MO and belonging to the provided optimizer group.
Get a copy of the list of optimizer entries registered with this MO.
Get the target onto which the optimizations will be performed.
Perform an optimization round.
Register an optimizer, with its default priority.
Register an optimizer to the main group, with its default priority.
Register an optimizer.
Set the optimizer's target.