Top Fields Constructors Methods
org.jruby.ir.passes

public Class DominatorTreeBuilder

extends CompilerPass
Class Inheritance
Imports
org.jruby.ir.interpreter.FullInterpreterContext, org.jruby.ir.representations.BasicBlock, .CFG, org.jruby.util.log.Logger, .LoggerFactory, java.util.*

Field Summary

Modifier and TypeField and Description
private static final Logger
private static final int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
buildDominatorTree(CFG cfg, LinkedList<BasicBlock> postOrderList, int maxNodeId)

public Object
execute(FullInterpreterContext
is the FullInterpreterContext to run this pass on
fic
,
Object...
is the data supplied to this pass to use to execute the pass
data
)

Implements abstract org.jruby.ir.passes.CompilerPass.execute.

Meat of an individual pass.

public String
getLabel()

Implements abstract org.jruby.ir.passes.CompilerPass.getLabel.

What is the user-friendly name of this compiler pass

private int
intersectDomSets(int[] idomMap, int nb1, int nb2)

public boolean
invalidate(FullInterpreterContext
is where the pass stores its data.
fic
)

Overrides org.jruby.ir.passes.CompilerPass.invalidate.

The data that this pass is responsible for will get invalidated so that if this pass is then executed it will generate new pass data.

Inherited from org.jruby.ir.passes.CompilerPass:
createPassInstancecreatePassInstanceequalsgetDependenciesgetPassesFromStringgetShortLabelhashCodepreviouslyRunrunrunrun

Field Detail

LOGback to summary
private static final Logger LOG

Hides org.jruby.ir.passes.CompilerPass.LOG.

NULLback to summary
private static final int NULL

Constructor Detail

DominatorTreeBuilderback to summary
public DominatorTreeBuilder()

Method Detail

buildDominatorTreeback to summary
public void buildDominatorTree(CFG cfg, LinkedList<BasicBlock> postOrderList, int maxNodeId)
executeback to summary
public Object execute(FullInterpreterContext fic, Object... data)

Implements abstract org.jruby.ir.passes.CompilerPass.execute.

Doc from org.jruby.ir.passes.CompilerPass.execute.

Meat of an individual pass. run will call this after dependency resolution.

Parameters
fic:FullInterpreterContext

is the FullInterpreterContext to run this pass on

data:Object[]

is the data supplied to this pass to use to execute the pass

Annotations
@Override
getLabelback to summary
public String getLabel()

Implements abstract org.jruby.ir.passes.CompilerPass.getLabel.

Doc from org.jruby.ir.passes.CompilerPass.getLabel.

What is the user-friendly name of this compiler pass

Annotations
@Override
intersectDomSetsback to summary
private int intersectDomSets(int[] idomMap, int nb1, int nb2)
invalidateback to summary
public boolean invalidate(FullInterpreterContext fic)

Overrides org.jruby.ir.passes.CompilerPass.invalidate.

Doc from org.jruby.ir.passes.CompilerPass.invalidate.

The data that this pass is responsible for will get invalidated so that if this pass is then executed it will generate new pass data. Note that some data will destructively manipulate dependent compiler pass data. In that case, the pass may wipe more than just it's data. In that case, an execute() should still rebuild everything fine because all compiler passes list their dependencies.

Parameters
fic:FullInterpreterContext

is where the pass stores its data.

Returns:boolean

true if invalidation succeeded, false otherwise.

Annotations
@Override