Top Fields Constructors Methods
org.jruby.ir.transformations.inlining

public Class CFGInliner

extends Object
Class Inheritance
Imports
org.jruby.dirgra.Edge, org.jruby.RubyModule, org.jruby.ir.IRClosure, .IRManager, .IRScope, .Tuple, org.jruby.ir.instructions.*, org.jruby.ir.interpreter.FullInterpreterContext, org.jruby.ir.operands.*, org.jruby.ir.representations.BasicBlock, .CFG, .CFG.EdgeType, org.jruby.util.log.Logger, .LoggerFactory, java.util.ArrayList, .List

Field Summary

Modifier and TypeField and Description
private final CFG
private static final boolean
private final FullInterpreterContext
private final IRScope
public static final Logger

Constructor Summary

AccessConstructor and Description
public
CFGInliner(FullInterpreterContext fullInterpreterContext)

Method Summary

Modifier and TypeMethod and Description
private void
private SimpleCloneInfo
private CFG
private void
connectOuterEdges(BasicBlock beforeInlineBB, BasicBlock afterInlineBB)

public BasicBlock
private Variable
private void
public String
inlineMethod(IRScope scopeToInline, RubyModule implClass, int classToken, BasicBlock callBB, CallBase call, boolean cloneHost)

private boolean
private void
private void
printInlineCFG(CFG aCFG, String label)

private void
private void
private void
private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

cfgback to summary
private final CFG cfg
debugback to summary
private static final boolean debug
fullInterpreterContextback to summary
private final FullInterpreterContext fullInterpreterContext
hostScopeback to summary
private final IRScope hostScope
LOGback to summary
public static final Logger LOG

Constructor Detail

CFGInlinerback to summary
public CFGInliner(FullInterpreterContext fullInterpreterContext)

Method Detail

addMissingJumpsback to summary
private void addMissingJumps()
cloneHostInstrsback to summary
private SimpleCloneInfo cloneHostInstrs()
cloneSelfback to summary
private CFG cloneSelf(InlineCloneInfo ii)
connectOuterEdgesback to summary
private void connectOuterEdges(BasicBlock beforeInlineBB, BasicBlock afterInlineBB)
findCallsiteBBback to summary
public BasicBlock findCallsiteBB(CallBase call)
getReceiverVariableback to summary
private Variable getReceiverVariable(Operand receiver)
inlineClosureAtYieldSiteback to summary
private void inlineClosureAtYieldSite(InlineCloneInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield)
inlineMethodback to summary
public String inlineMethod(IRScope scopeToInline, RubyModule implClass, int classToken, BasicBlock callBB, CallBase call, boolean cloneHost)
isRecursiveInlineback to summary
private boolean isRecursiveInline(IRScope methodScope)
printInlineCannotFindCallsiteBBback to summary
private void printInlineCannotFindCallsiteBB(CallBase call)
printInlineCFGback to summary
private void printInlineCFG(CFG aCFG, String label)
printInlineDebugPrologueback to summary
private void printInlineDebugPrologue(IRScope scopeToInline, CallBase call)
printInlineEpilogueback to summary
private void printInlineEpilogue()
printInlineFoundBBback to summary
private void printInlineFoundBB(BasicBlock bb)
printInlineSplitBBsback to summary
private void printInlineSplitBBs(BasicBlock beforeBB, BasicBlock afterBB)