Class AbstractJElementOptimizer
java.lang.Object
com.pnfsoftware.jeb.core.AbstractPlugin
com.pnfsoftware.jeb.core.units.code.java.AbstractJOptimizer
com.pnfsoftware.jeb.core.units.code.java.AbstractJElementOptimizer
- All Implemented Interfaces:
IPlugin,IJOptimizer
Base optimizer that visits and may replace sub-elements of a method AST.
-
Field Summary
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreate a standard optimizer.protectedCreate an optimizer.protectedAbstractJElementOptimizer(JOptimizerType type, String name) Create an optimizer. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract IJavaElementoptimizeElement(IJavaElement e, IJavaElement parent) Optimize an AST element.intperform()An optimizer must implement this method.Methods inherited from class com.pnfsoftware.jeb.core.units.code.java.AbstractJOptimizer
getName, getPluginInformation, getPriority, getType, isEnabled, perform, setEnabled, setName, setPriority, setTypeMethods inherited from class com.pnfsoftware.jeb.core.AbstractPlugin
dispose, getData, setData
-
Constructor Details
-
AbstractJElementOptimizer
protected AbstractJElementOptimizer()Create a standard optimizer. -
AbstractJElementOptimizer
Create an optimizer.- Parameters:
type- optimizer type, or null to useJOptimizerType.NORMAL
-
AbstractJElementOptimizer
Create an optimizer.- Parameters:
type- optimizer type, or null to useJOptimizerType.NORMALname- optimizer name, or null to derive one from the implementation class
-
-
Method Details
-
perform
public int perform()Description copied from class:AbstractJOptimizerAn optimizer must implement this method. This method is called by a master optimizer toperformthe optimization on the selected target.Note that the optimizer is responsible for returning a legal method context, e.g.: the method IR instructions must be consistent with the CFG; the CFG must adhere to certain rules (see
cleanGraph); if the data flow analysis is no longer valid, it should be invalidated (seeresetDFA); etc.- Specified by:
performin classAbstractJOptimizer- Returns:
- the number of optimizations performed, 0 if none
-
optimizeElement
Optimize an AST element.- Parameters:
e- element to optimizeparent- parent element- Returns:
- replacement element, or null to leave the element unchanged
-