Modifier and Type | Method and Description |
---|---|
IRScope |
InterpretedIRMethod.getIRMethod() |
Constructor and Description |
---|
InterpretedIRMethod(IRScope method,
RubyModule implementationClass) |
InterpretedIRMethod(IRScope method,
Visibility visibility,
RubyModule implementationClass) |
Modifier and Type | Class and Description |
---|---|
class |
IRClassBody |
class |
IRClosure |
class |
IREvalScript |
class |
IRMetaClassBody |
class |
IRMethod |
class |
IRModuleBody |
class |
IRScriptBody |
Modifier and Type | Field and Description |
---|---|
IRScope |
IRLoop.container |
Modifier and Type | Method and Description |
---|---|
IRScope |
IRBuilder.buildRoot(RootNode rootNode) |
IRScope |
IRScope.getLexicalParent()
Returns the lexical scope that contains this scope definition
|
IRScope |
IRScope.getNearestFlipVariableScope() |
IRScope |
IRScriptBody.getNearestModuleReferencingScope() |
IRScope |
IRScope.getNearestModuleReferencingScope()
Returns the nearest scope which we can extract a live module from.
|
IRScope |
IRModuleBody.getNearestModuleReferencingScope() |
IRScope |
IRScope.getNearestTopLocalVariableScope() |
IRScope |
IRScope.getTopLevelScope()
Returns the top level scope
|
Modifier and Type | Method and Description |
---|---|
List<IRScope> |
IRScope.getLexicalScopes() |
Modifier and Type | Method and Description |
---|---|
protected void |
IRScope.addChildScope(IRScope scope) |
Operand |
IRBuilder.build(Node node,
IRScope s) |
Operand |
IRBuilder.buildAlias(AliasNode alias,
IRScope s) |
Operand |
IRBuilder.buildAnd(AndNode andNode,
IRScope s) |
Operand |
IRBuilder.buildArgsCat(ArgsCatNode argsCatNode,
IRScope s) |
void |
IRBuilder19.buildArgsMasgn(Node node,
IRScope s,
Operand argsArray,
boolean isMasgnRoot,
int preArgsCount,
int postArgsCount,
int index,
boolean isSplat) |
Operand |
IRBuilder19.buildArgsPush(ArgsPushNode node,
IRScope s) |
Operand |
IRBuilder.buildArgsPush(ArgsPushNode node,
IRScope s) |
Operand |
IRBuilder.buildArray(Node node,
IRScope s) |
void |
IRBuilder.buildAssignment(Node node,
IRScope s,
Variable rhsVal) |
Operand |
IRBuilder.buildAttrAssignAssignment(Node node,
IRScope s,
Operand value) |
Operand |
IRBuilder.buildBackref(BackRefNode node,
IRScope s) |
Operand |
IRBuilder.buildBegin(BeginNode beginNode,
IRScope s) |
Operand |
IRBuilder.buildBignum(BignumNode node,
IRScope s) |
Operand |
IRBuilder.buildBlock(BlockNode node,
IRScope s) |
void |
IRBuilder.buildBlockArgsAssignment(Node node,
IRScope s,
Operand argsArray,
int argIndex,
boolean isMasgnRoot,
boolean isClosureArg,
boolean isSplat) |
Operand |
IRBuilder.buildBreak(BreakNode breakNode,
IRScope s) |
Operand |
IRBuilder.buildCall(CallNode callNode,
IRScope s) |
protected Operand |
IRBuilder.buildCallArgs(List<Operand> argsList,
Node args,
IRScope s) |
Operand |
IRBuilder.buildCase(CaseNode caseNode,
IRScope s) |
Operand |
IRBuilder.buildClass(ClassNode classNode,
IRScope s)
Build a new class and add it to the current scope (s).
|
Operand |
IRBuilder.buildClassVar(ClassVarNode node,
IRScope s) |
Operand |
IRBuilder.buildClassVarAsgn(ClassVarAsgnNode classVarAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildClassVarDecl(ClassVarDeclNode classVarDeclNode,
IRScope s) |
Operand |
IRBuilder.buildColon2(Colon2Node iVisited,
IRScope s) |
Operand |
IRBuilder.buildColon3(Colon3Node node,
IRScope s) |
Operand |
IRBuilder.buildConstDecl(ConstDeclNode node,
IRScope s) |
Operand |
IRBuilder.buildConstDeclAssignment(ConstDeclNode constDeclNode,
IRScope s,
Operand val) |
Operand |
IRBuilder.buildDAsgn(DAsgnNode dasgnNode,
IRScope s) |
protected Variable |
IRBuilder.buildDefinitionCheck(IRScope s,
ResultInstr definedInstr,
String definedReturnValue) |
Operand |
IRBuilder.buildDefn(MethodDefNode node,
IRScope s) |
protected Variable |
IRBuilder.buildDefnCheckIfThenPaths(IRScope s,
Label undefLabel,
Operand defVal) |
Operand |
IRBuilder.buildDefs(DefsNode node,
IRScope s) |
Operand |
IRBuilder.buildDot(DotNode dotNode,
IRScope s) |
Operand |
IRBuilder.buildDRegexp(DRegexpNode dregexpNode,
IRScope s) |
Operand |
IRBuilder.buildDStr(DStrNode dstrNode,
IRScope s) |
Operand |
IRBuilder.buildDSymbol(DSymbolNode node,
IRScope s) |
Operand |
IRBuilder.buildDVar(DVarNode node,
IRScope s) |
Operand |
IRBuilder.buildDXStr(DXStrNode dstrNode,
IRScope s) |
Operand |
IRBuilder19.buildEncoding(EncodingNode node,
IRScope s) |
Operand |
IRBuilder.buildEnsureNode(EnsureNode ensureNode,
IRScope s) |
IREvalScript |
IRBuilder.buildEvalRoot(StaticScope staticScope,
IRScope containingScope,
String file,
int lineNumber,
RootNode rootNode) |
Operand |
IRBuilder.buildEvStr(EvStrNode node,
IRScope s) |
Operand |
IRBuilder.buildFalse(Node node,
IRScope s) |
Operand |
IRBuilder.buildFCall(FCallNode fcallNode,
IRScope s) |
Operand |
IRBuilder.buildFixnum(FixnumNode node,
IRScope s) |
Operand |
IRBuilder.buildFlip(FlipNode flipNode,
IRScope s) |
Operand |
IRBuilder.buildFloat(FloatNode node,
IRScope s) |
Operand |
IRBuilder.buildFor(ForNode forNode,
IRScope s) |
Operand |
IRBuilder.buildForIter(ForNode forNode,
IRScope s) |
protected Operand |
IRBuilder.buildGenericGetDefinitionIR(Node node,
IRScope s) |
Operand |
IRBuilder.buildGetArgumentDefinition(Node node,
IRScope s,
String type) |
Operand |
IRBuilder.buildGetDefinition(Node defnNode,
IRScope s) |
Operand |
IRBuilder.buildGetDefinitionBase(Node node,
IRScope s) |
Operand |
IRBuilder.buildGlobalAsgn(GlobalAsgnNode globalAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildGlobalVar(GlobalVarNode node,
IRScope s) |
Operand |
IRBuilder.buildHash(HashNode hashNode,
IRScope s) |
Operand |
IRBuilder.buildIf(IfNode ifNode,
IRScope s) |
Operand |
IRBuilder.buildInstAsgn(InstAsgnNode instAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildInstVar(InstVarNode node,
IRScope s) |
Operand |
IRBuilder.buildIter(IterNode iterNode,
IRScope s) |
Operand |
IRBuilder19.buildLambda(LambdaNode node,
IRScope s) |
Operand |
IRBuilder.buildLiteral(LiteralNode literalNode,
IRScope s) |
Operand |
IRBuilder.buildLocalAsgn(LocalAsgnNode localAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildLocalVar(LocalVarNode node,
IRScope s) |
Operand |
IRBuilder.buildMatch(MatchNode matchNode,
IRScope s) |
Operand |
IRBuilder.buildMatch2(Match2Node matchNode,
IRScope s) |
Operand |
IRBuilder.buildMatch3(Match3Node matchNode,
IRScope s) |
Operand |
IRBuilder.buildModule(ModuleNode moduleNode,
IRScope s) |
Operand |
IRBuilder.buildMultipleAsgn(MultipleAsgnNode multipleAsgnNode,
IRScope s) |
Operand |
IRBuilder19.buildMultipleAsgn19(MultipleAsgn19Node multipleAsgnNode,
IRScope s) |
void |
IRBuilder19.buildMultipleAsgn19Assignment(MultipleAsgn19Node multipleAsgnNode,
IRScope s,
Operand argsArray,
Operand values) |
void |
IRBuilder.buildMultipleAsgnAssignment(MultipleAsgnNode multipleAsgnNode,
IRScope s,
Operand argsArray,
Operand values) |
Operand |
IRBuilder.buildNewline(NewlineNode node,
IRScope s) |
Operand |
IRBuilder.buildNext(NextNode nextNode,
IRScope s) |
Operand |
IRBuilder.buildNil(Node node,
IRScope s) |
Operand |
IRBuilder.buildNot(NotNode node,
IRScope s) |
Operand |
IRBuilder.buildNthRef(NthRefNode nthRefNode,
IRScope s) |
Operand |
IRBuilder.buildOpAsgn(OpAsgnNode opAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildOpAsgnAnd(OpAsgnAndNode andNode,
IRScope s) |
Operand |
IRBuilder.buildOpAsgnOr(OpAsgnOrNode orNode,
IRScope s) |
Operand |
IRBuilder.buildOpElementAsgn(OpElementAsgnNode node,
IRScope s) |
Operand |
IRBuilder.buildOpElementAsgnWithAnd(OpElementAsgnNode opElementAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildOpElementAsgnWithMethod(OpElementAsgnNode opElementAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildOpElementAsgnWithOr(OpElementAsgnNode opElementAsgnNode,
IRScope s) |
Operand |
IRBuilder.buildOr(OrNode orNode,
IRScope s) |
Operand |
IRBuilder.buildPostExe(PostExeNode postExeNode,
IRScope s) |
Operand |
IRBuilder.buildPreExe(PreExeNode preExeNode,
IRScope s) |
Operand |
IRBuilder.buildRedo(Node node,
IRScope s) |
Operand |
IRBuilder.buildRegexp(RegexpNode reNode,
IRScope s) |
Operand |
IRBuilder.buildRescue(RescueNode node,
IRScope s) |
Operand |
IRBuilder.buildRetry(Node node,
IRScope s) |
Operand |
IRBuilder.buildReturn(ReturnNode returnNode,
IRScope s) |
Operand |
IRBuilder.buildSClass(SClassNode sclassNode,
IRScope s) |
Operand |
IRBuilder.buildSelf(Node node,
IRScope s) |
Operand |
IRBuilder.buildSplat(SplatNode splatNode,
IRScope s) |
Operand |
IRBuilder.buildStr(StrNode strNode,
IRScope s) |
Operand |
IRBuilder.buildSuper(SuperNode superNode,
IRScope s) |
Operand |
IRBuilder.buildSValue(SValueNode node,
IRScope s) |
Operand |
IRBuilder.buildSymbol(SymbolNode node,
IRScope s) |
Operand |
IRBuilder.buildToAry(ToAryNode node,
IRScope s) |
Operand |
IRBuilder.buildTrue(Node node,
IRScope s) |
Operand |
IRBuilder.buildUndef(Node node,
IRScope s) |
Operand |
IRBuilder.buildUntil(UntilNode untilNode,
IRScope s) |
Operand |
IRBuilder.buildVAlias(Node node,
IRScope s) |
Operand |
IRBuilder.buildVCall(VCallNode node,
IRScope s) |
void |
IRBuilder19.buildVersionSpecificAssignment(Node node,
IRScope s,
Variable v) |
void |
IRBuilder.buildVersionSpecificAssignment(Node node,
IRScope s,
Variable v) |
void |
IRBuilder19.buildVersionSpecificBlockArgsAssignment(Node node,
IRScope s,
Operand argsArray,
int argIndex,
boolean isMasgnRoot,
boolean isClosureArg,
boolean isSplat) |
void |
IRBuilder.buildVersionSpecificBlockArgsAssignment(Node node,
IRScope s,
Operand argsArray,
int argIndex,
boolean isMasgnRoot,
boolean isClosureArg,
boolean isSplat) |
Operand |
IRBuilder19.buildVersionSpecificGetDefinitionIR(Node node,
IRScope s) |
protected Operand |
IRBuilder.buildVersionSpecificGetDefinitionIR(Node node,
IRScope s) |
protected Operand |
IRBuilder19.buildVersionSpecificNodes(Node node,
IRScope s) |
protected Operand |
IRBuilder.buildVersionSpecificNodes(Node node,
IRScope s) |
Operand |
IRBuilder.buildWhile(WhileNode whileNode,
IRScope s) |
Operand |
IRBuilder.buildXStr(XStrNode node,
IRScope s) |
Operand |
IRBuilder19.buildYield(YieldNode node,
IRScope s) |
Operand |
IRBuilder.buildYield(YieldNode node,
IRScope s) |
Operand |
IRBuilder.buildZArray(Node node,
IRScope s) |
Operand |
IRBuilder.buildZSuper(ZSuperNode zsuperNode,
IRScope s)
private Operand[] getZSuperArgs(IRScope s) {
if (s instanceof IRMethod) return ((IRMethod)s).getCallArgs();
Operand[] sArgs = s.getNearestMethod().getCallArgs();
// Update args to make them accessible at a different depth
int n = ((IRClosure)s).getNestingDepth();
for (int i = 0; i < sArgs.length; i++) {
Operand arg = sArgs[i];
sArgs[i] = (arg instanceof Splat) ? new Splat(((LocalVariable)((Splat)arg).getArray()).cloneForDepth(n)) : ((LocalVariable)arg).cloneForDepth(n);
}
return sArgs;
}
|
Operand |
IRBuilder.classVarContainer(IRScope s,
boolean declContext) |
Operand |
IRBuilder.classVarDeclarationContainer(IRScope s) |
Operand |
IRBuilder.classVarDefinitionContainer(IRScope s) |
protected Variable |
IRBuilder.copyAndReturnValue(IRScope s,
Operand val) |
protected LocalVariable |
IRBuilder19.getArgVariable(IRScope s,
String name,
int depth) |
protected LocalVariable |
IRBuilder19.getBlockArgVariable(IRScope s,
String name,
int depth) |
protected LocalVariable |
IRBuilder.getBlockArgVariable(IRScope cl,
String name,
int depth) |
List<CompilerPass> |
IRManager.getCompilerPasses(IRScope scope) |
List<CompilerPass> |
IRManager.getInliningCompilerPasses(IRScope scope) |
protected Variable |
IRBuilder.getSelf(IRScope s) |
protected Variable |
IRBuilder.getValueInTemporaryVariable(IRScope s,
Operand val) |
void |
IRScope.inlineMethod(IRScope method,
RubyModule implClass,
int classToken,
BasicBlock basicBlock,
CallBase call) |
protected void |
IRBuilder19.receiveArg(IRScope s,
Variable v,
Operand argsArray,
int argIndex,
boolean isSplat) |
void |
IRBuilder20.receiveArgs(ArgsNode argsNode,
IRScope s) |
void |
IRBuilder19.receiveArgs(ArgsNode argsNode,
IRScope s) |
protected void |
IRBuilder19.receiveBlockArg(ArgsNode argsNode,
IRScope s) |
protected void |
IRBuilder.receiveBlockArg(IRScope s,
Variable v,
Operand argsArray,
int argIndex,
boolean isClosureArg,
boolean isSplat) |
void |
IRBuilder19.receiveBlockArgs(IterNode node,
IRScope s) |
void |
IRBuilder.receiveBlockArgs(IterNode node,
IRScope s) |
void |
IRBuilder19.receiveBlockClosureArg(Node node,
IRScope s) |
void |
IRBuilder.receiveBlockClosureArg(Node node,
IRScope s) |
void |
IRBuilder19.receiveMethodArgs(ArgsNode argsNode,
IRScope s) |
void |
IRBuilder.receiveMethodArgs(ArgsNode argsNode,
IRScope s) |
protected void |
IRBuilder19.receiveNonBlockArgs(ArgsNode argsNode,
IRScope s) |
protected int |
IRBuilder.receiveOptArgs(ArgsNode argsNode,
IRScope s,
int opt,
int argIndex) |
void |
IRBuilder19.receiveRequiredArg(Node node,
IRScope s,
int argIndex,
boolean post,
int numPreReqd,
int numPostRead) |
List<Operand> |
IRBuilder.setupCallArgs(Node args,
IRScope s) |
Node |
IRBuilder.skipOverNewlines(IRScope s,
Node n) |
Constructor and Description |
---|
IRClassBody(IRManager manager,
IRScope lexicalParent,
String name,
int lineNumber,
StaticScope scope) |
IRClassBody(IRManager manager,
IRScope lexicalParent,
String name,
String fileName,
int lineNumber,
StaticScope scope) |
IRClosure(IRManager manager,
IRScope lexicalParent,
boolean isForLoopBody,
int lineNumber,
StaticScope staticScope,
Arity arity,
int argumentType,
boolean is1_8) |
IRClosure(IRManager manager,
IRScope lexicalParent,
String fileName,
int lineNumber,
StaticScope staticScope,
String prefix) |
IREvalScript(IRManager manager,
IRScope lexicalParent,
String fileName,
int lineNumber,
StaticScope staticScope) |
IRLoop(IRScope s,
IRLoop outerLoop) |
IRMetaClassBody(IRManager manager,
IRScope lexicalParent,
String name,
int lineNumber,
StaticScope scope) |
IRMetaClassBody(IRManager manager,
IRScope lexicalParent,
String name,
String fileName,
int lineNumber,
StaticScope scope) |
IRMethod(IRManager manager,
IRScope lexicalParent,
String name,
boolean isInstanceMethod,
int lineNumber,
StaticScope staticScope) |
IRModuleBody(IRManager manager,
IRScope lexicalParent,
String name,
int lineNumber,
StaticScope scope) |
IRModuleBody(IRManager manager,
IRScope lexicalParent,
String name,
String fileName,
int lineNumber,
StaticScope scope) |
IRScope(IRManager manager,
IRScope lexicalParent,
String name,
String fileName,
int lineNumber,
StaticScope staticScope) |
IRScope(IRScope s,
IRScope lexicalParent) |
Modifier and Type | Field and Description |
---|---|
protected IRScope |
DataFlowProblem.scope |
Modifier and Type | Method and Description |
---|---|
IRScope |
DataFlowProblem.getScope() |
Modifier and Type | Method and Description |
---|---|
void |
DataFlowProblem.setup(IRScope scope) |
Modifier and Type | Method and Description |
---|---|
void |
LiveVariablesProblem.setup(IRScope scope,
Collection<LocalVariable> allVars)
Initialize the problem with all vars from the surrounding scope variables.
|
Constructor and Description |
---|
LiveVariablesProblem(IRScope scope) |
Modifier and Type | Field and Description |
---|---|
IRScope |
LineNumberInstr.scope |
Modifier and Type | Method and Description |
---|---|
IRScope |
BreakInstr.getScopeToReturnTo() |
Modifier and Type | Method and Description |
---|---|
IRubyObject |
RuntimeHelperCall.callHelper(ThreadContext context,
DynamicScope currDynScope,
IRubyObject self,
Object[] temp,
IRScope scope,
Block.Type blockType) |
boolean |
Instr.canBeDeleted(IRScope s) |
Operand |
ToAryInstr.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap) |
Operand |
NotInstr.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap) |
Operand |
MultipleAsgnBase.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap) |
Operand |
Instr.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap)
This method takes as input a map of operands to their values, and outputs
the result of this instruction.
|
Operand |
EnsureRubyArrayInstr.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap) |
Operand |
CopyInstr.simplifyAndGetResult(IRScope scope,
Map<Operand,Operand> valueMap) |
Constructor and Description |
---|
BreakInstr(Operand rv,
IRScope s) |
LineNumberInstr(IRScope scope,
int lineNumber) |
LoadLocalVarInstr(IRScope scope,
TemporaryVariable result,
LocalVariable lvar) |
PushBindingInstr(IRScope scope) |
RecordEndBlockInstr(IRScope declaringScope,
IRClosure endBlockClosure) |
StoreLocalVarInstr(Operand value,
IRScope scope,
LocalVariable lvar) |
Modifier and Type | Method and Description |
---|---|
static IRubyObject |
Interpreter.INTERPRET_BLOCK(ThreadContext context,
IRubyObject self,
IRScope scope,
IRubyObject[] args,
String name,
Block block,
Block.Type blockType) |
static IRubyObject |
Interpreter.INTERPRET_EVAL(ThreadContext context,
IRubyObject self,
IRScope scope,
RubyModule clazz,
IRubyObject[] args,
String name,
Block block,
Block.Type blockType) |
Modifier and Type | Method and Description |
---|---|
void |
IRScopeListener.addedInstr(IRScope scope,
Instr instr,
int index) |
void |
IRScopeListener.endBuildOperand(Node node,
IRScope scope,
Operand operand) |
void |
IRScopeListener.startBuildOperand(Node node,
IRScope scope) |
Modifier and Type | Method and Description |
---|---|
IRScope |
ScopeModule.getScope() |
IRScope |
CurrentScope.getScope() |
Constructor and Description |
---|
CurrentScope(IRScope scope) |
ScopeModule(IRScope scope) |
Modifier and Type | Method and Description |
---|---|
void |
CompilerPassListener.alreadyExecuted(CompilerPass passClass,
IRScope scope,
Object data,
boolean childScope)
This dependent pass has been determined to already be satisfied and is
not going to call execute().
|
void |
BasicCompilerPassListener.alreadyExecuted(CompilerPass passClass,
IRScope scope,
Object data,
boolean childScope) |
void |
CompilerPassListener.endExecute(CompilerPass pass,
IRScope scope,
Object data,
boolean childScope)
This pass has just finished execute'ing.
|
void |
BasicCompilerPassListener.endExecute(CompilerPass pass,
IRScope scope,
Object data,
boolean childScope) |
Object |
OptimizeTempVarsPass.execute(IRScope s,
Object... data) |
Object |
LocalOptimizationPass.execute(IRScope s,
Object... data) |
Object |
LiveVariableAnalysis.execute(IRScope scope,
Object... data) |
Object |
LinearizeCFG.execute(IRScope scope,
Object... data) |
Object |
DominatorTreeBuilder.execute(IRScope scope,
Object... data) |
Object |
DeadCodeElimination.execute(IRScope scope,
Object... data) |
abstract Object |
CompilerPass.execute(IRScope scope,
Object... dependencyData)
Meat of an individual pass.
|
Object |
CFGBuilder.execute(IRScope scope,
Object... data) |
Object |
CallSplitter.execute(IRScope scope,
Object... data) |
Object |
AddLocalVarLoadStoreInstructions.execute(IRScope s,
Object... data) |
Object |
AddCallProtocolInstructions.execute(IRScope scope,
Object... data) |
void |
OptimizeTempVarsPass.invalidate(IRScope s) |
void |
LocalOptimizationPass.invalidate(IRScope scope) |
void |
LiveVariableAnalysis.invalidate(IRScope scope) |
void |
LinearizeCFG.invalidate(IRScope scope) |
void |
DominatorTreeBuilder.invalidate(IRScope scope) |
void |
DeadCodeElimination.invalidate(IRScope scope) |
abstract void |
CompilerPass.invalidate(IRScope scope)
The data that this pass is responsible for will get invalidated so that
if this pass is then execute()d it will generate new pass data.
|
void |
CFGBuilder.invalidate(IRScope scope) |
void |
CallSplitter.invalidate(IRScope scope) |
void |
AddLocalVarLoadStoreInstructions.invalidate(IRScope scope) |
void |
AddCallProtocolInstructions.invalidate(IRScope scope) |
Object |
OptimizeTempVarsPass.previouslyRun(IRScope scope) |
Object |
LocalOptimizationPass.previouslyRun(IRScope scope) |
Object |
LiveVariableAnalysis.previouslyRun(IRScope scope) |
Object |
CompilerPass.previouslyRun(IRScope scope)
If this pass has been previous run then return the data from that last run.
|
Object |
CFGBuilder.previouslyRun(IRScope scope) |
Object |
AddLocalVarLoadStoreInstructions.previouslyRun(IRScope scope) |
Object |
AddCallProtocolInstructions.previouslyRun(IRScope scope) |
Object |
CompilerPass.run(IRScope scope) |
protected Object |
CompilerPass.run(IRScope scope,
boolean childScope) |
static void |
LocalOptimizationPass.runLocalOptsOnInstrList(IRScope s,
ListIterator<Instr> instrs,
boolean preCFG) |
void |
CompilerPassListener.startExecute(CompilerPass pass,
IRScope scope,
boolean childScope)
This pass is about to begin execute'ing.
|
void |
BasicCompilerPassListener.startExecute(CompilerPass pass,
IRScope scope,
boolean childScope) |
Modifier and Type | Method and Description |
---|---|
IRScope |
CFG.getScope() |
Modifier and Type | Method and Description |
---|---|
CFG |
CFG.cloneForCloningClosure(IRScope scope,
InlinerInfo ii) |
Constructor and Description |
---|
CFG(IRScope scope) |
Modifier and Type | Method and Description |
---|---|
static void |
IRRuntimeHelpers.catchUncaughtBreakInLambdas(ThreadContext context,
IRScope scope,
Object exc,
Block.Type blockType) |
static IRubyObject |
IRRuntimeHelpers.handleNonlocalReturn(IRScope scope,
Object rjExc,
Block.Type blockType) |
static IRubyObject |
IRRuntimeHelpers.handlePropagatedBreak(ThreadContext context,
IRScope scope,
Object bjExc,
Block.Type blockType) |
static IRubyObject |
IRRuntimeHelpers.initiateBreak(ThreadContext context,
IRScope scope,
int scopeIdToReturnTo,
IRubyObject breakValue,
Block.Type blockType) |
static void |
IRRuntimeHelpers.initiateNonLocalReturn(ThreadContext context,
IRScope scope,
IRMethod methodToReturnFrom,
IRubyObject returnValue) |
static boolean |
IRRuntimeHelpers.inNonMethodBodyLambda(IRScope scope,
Block.Type blockType) |
Modifier and Type | Method and Description |
---|---|
void |
JVMVisitor.codegen(IRScope scope) |
static Class |
JVMVisitor.compile(Ruby ruby,
IRScope scope,
JRubyClassLoader jrubyClassLoader) |
String |
JVMVisitor.emitScope(IRScope scope,
String name,
int arity) |
Modifier and Type | Method and Description |
---|---|
IRScope |
InlinerInfo.getInlineHostScope()
Returns the scope into which code is being inlined.
|
IRScope |
InlinerInfo.getNewLexicalParentForClosure() |
Modifier and Type | Method and Description |
---|---|
void |
CFGInliner.inlineMethod(IRScope scope,
RubyModule implClass,
int classToken,
BasicBlock callBB,
CallBase call) |
Modifier and Type | Method and Description |
---|---|
IRScope |
IRStaticScope.getIRScope() |
Modifier and Type | Method and Description |
---|---|
void |
IRStaticScope.setIRScope(IRScope irScope) |
Copyright © 2001-2016 JRuby. All Rights Reserved.