# Class: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.AbstractCOptimizer

Base class for C AST optimizers.

## Constructor: AbstractCOptimizer

Description: Create a C AST optimizer.

## Protected Field: cf
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICConstantFactory`
Description: Constant factory for the current method.

## Protected Field: ef
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElementFactory`
Description: Element factory for the current method.

## Protected Field: g
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICGlobalContext`
Description: Global C AST context for the current method.

## Protected Field: m
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICMethod`
Description: Method currently being optimized.

## Protected Field: of
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperatorFactory`
Description: Operator factory for the current method.

## Method: getMasterOptimizer
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.ICMasterOptimizer`


## Protected Method: getMasterOptimizerSafe
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.ICMasterOptimizer`

Description: Safely retrieve a master optimizer. If [#getMasterOptimizer()](#getMasterOptimizer()) provides one, it is returned. Else, an empty immutable generic MO is provided.
return: never null

## Protected Method: perform
- return type: `int`

Description: Perform the optimizer\-specific work.
return: the number of optimizations performed

## Method: performOnTarget
- parameter: `m`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICMethod`
- return type: `int`


