java.lang.Object | ||||
↳ | com.pnfsoftware.jeb.core.AbstractPlugin | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractOptimizer<T extends com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizerTarget> | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.AbstractEOptimizer | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.AbstractEStatementOptimizer |
Skeleton for an IRE EStatement statement optimizer.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer
|
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.AbstractEOptimizer
| |||||||||||
From class
com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractOptimizer
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AbstractEStatementOptimizer(DataChainsUpdatePolicy dataChainsUpdatePolicy) |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract IEStatement |
optimizeStatement(IEStatement stm)
Attempt to optimize a statement.
| ||||||||||
int |
perform()
Perform the optimization pass.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.AbstractEOptimizer
| |||||||||||
From class
com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractOptimizer
| |||||||||||
From class
com.pnfsoftware.jeb.core.AbstractPlugin
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
com.pnfsoftware.jeb.core.IPlugin
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt.IEOptimizer
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer
|
dataChainsUpdatePolicy | statement optimizers CANNOT use the
UPDATE_IF_REQUIRED policy
|
---|
Attempt to optimize a statement. Sub-expressions may be examined. The implementor should not attempt to modify parent or cousins expressions.
stm | the statement to be optimized |
---|
Perform the optimization pass. The caller may request that data chains not be updated, whenever possible. (They may be updated internally by the optimizer, which has the final say as to how and when DFA calculations should be run.)
The above means that data chains after running this method may or may not have been modified, and may or may not be in a consistent state with the optimized CFG.
postPerform(...)
or a negative number
indicating an error has occurred and the optimizing process should be aborted