java.lang.Object | ||||
↳ | com.pnfsoftware.jeb.core.AbstractPlugin | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractOptimizer<T> | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.AbstractCOptimizer | |||
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.AbstractCBlockOptimizer |
![]() |
Perform a recursive optimizer on ICBlock
. The policy is recurse first, so optimizer is
done as post-treatment.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AbstractCBlockOptimizer() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
final int | performOnMethoBlocksRecursivively() |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ICStatement | getNextSiblingStatement(int statementIndex, ICBlock block, ICStatement blockNextSiblingStm) | ||||||||||
abstract int |
optimizeBlock(ICBlock b)
Attempt to optimize CBlock.
| ||||||||||
int |
optimizeBlock(ICBlock b, ICCompound parent, ICStatement blockNextStm)
Attempt to optimize CBlock, with some contextual information provided.
| ||||||||||
int |
performInternal()
Can be overridden.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Attempt to optimize CBlock. Sub-expressions may be examined. The implementor should not attempt to modify parent or siblings CBlocks.
b | CBlock |
---|
Attempt to optimize CBlock, with some contextual information provided. Sub-expressions may be examined. The implementor should not attempt to modify parent or siblings CBlocks.
parent | the parent compound statement |
---|---|
blockNextStm | the next statement (i.e. the next sibling statement in the AST, not control-flow related) |
Can be overridden. The default implementation simply calls performOnMethoBlocksRecursivively()
.