public class IRClosure extends IRScope
IRScope.LocalVariableAllocator
Modifier and Type | Field and Description |
---|---|
boolean |
addedGEBForUncaughtBreaks |
int |
closureId |
Label |
endLabel |
Label |
startLabel |
canReceiveBreaks, canReceiveNonlocalReturns, hasBreakInstrs, hasNonlocalReturns, temporaryVariableIndex
Modifier | Constructor and Description |
---|---|
|
IRClosure(IRManager manager,
IRScope lexicalParent,
boolean isForLoopBody,
int lineNumber,
StaticScope staticScope,
Arity arity,
int argumentType,
boolean is1_8) |
protected |
IRClosure(IRManager manager,
IRScope lexicalParent,
String fileName,
int lineNumber,
StaticScope staticScope,
String prefix) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
addGEBForUncaughtBreaks() |
void |
addInstr(Instr i) |
IRClosure |
cloneForClonedInstr(InlinerInfo ii) |
LocalVariable |
findExistingLocalVariable(String name,
int scopeDepth) |
Operand[] |
getBlockArgs() |
BlockBody |
getBlockBody() |
LocalVariable |
getImplicitBlockArg() |
LocalVariable |
getLocalVariable(String name,
int scopeDepth)
Find or create a local variable.
|
int |
getNestingDepth() |
LocalVariable |
getNewFlipStateVariable() |
Label |
getNewLabel() |
LocalVariable |
getNewLocalVariable(String name,
int depth) |
TemporaryVariable |
getNewTemporaryVariable() |
TemporaryVariable |
getNewTemporaryVariable(String name) |
int |
getNextClosureId() |
String[] |
getParameterList() |
String |
getScopeName() |
boolean |
isFlipScope() |
boolean |
isForLoopBody() |
boolean |
isTopLocalVariableScope() |
void |
setParameterList(String[] parameterList) |
String |
toStringBody() |
addChildScope, addClosure, addInstrAtBeginning, allocateNextPrefixedName, bindingHasEscaped, buildCFG, buildCFG, buildLinearization, canCaptureCallersBinding, canReceiveNonlocalReturns, cfg, checkRelinearization, computeScopeFlags, definesLocalVariable, depends, equals, getCFG, getClosures, getContainerModule, getCurrentModuleVariable, getCurrentScopeVariable, getDataFlowSolution, getEnsurerPC, getFileName, getInstrs, getInstrsForInterpretation, getLastInstr, getLexicalParent, getLexicalScopes, getLineNumber, getLocalVariablesCount, getManager, getName, getNearestFlipVariableScope, getNearestMethod, getNearestModuleReferencingScope, getNearestTopLocalVariableScope, getNewInlineVariable, getNewLabel, getPrefixCountSize, getRescuerPC, getScopeId, getSelf, getStaticScope, getTemporaryVariableSize, getThreadPollInstrsCount, getTopLevelScope, getUsedVariablesCount, hasExplicitCallProtocol, hashCode, hasLoops, initEvalScopeVariableAllocator, initFlipStateVariable, inlineMethod, isModuleBody, isNestedInClosure, isNonSingletonClassBody, isScriptScope, linearization, markUnusedImplicitBlockArg, modifiesCode, prepareForCompilation, prepareForInterpretation, receivesKeywordArgs, recordBeginBlock, recordEndBlock, resetCFG, resetDFProblemsState, resetLinearizationData, resetState, resetTemporaryVariables, resetVariableCounter, setCFG, setCodeModificationFlag, setDataFlowSolution, setExplicitCallProtocolFlag, setHasLoopsFlag, setName, setUpUseDefLocalVarMaps, splitCalls, toPersistableString, toString, toStringInstrs, toStringVariables, usesBackrefOrLastline, usesEval, usesLocalVariable, usesZSuper
public final Label startLabel
public final Label endLabel
public final int closureId
public boolean addedGEBForUncaughtBreaks
public IRClosure(IRManager manager, IRScope lexicalParent, boolean isForLoopBody, int lineNumber, StaticScope staticScope, Arity arity, int argumentType, boolean is1_8)
protected IRClosure(IRManager manager, IRScope lexicalParent, String fileName, int lineNumber, StaticScope staticScope, String prefix)
public void setParameterList(String[] parameterList)
public String[] getParameterList()
public int getNextClosureId()
getNextClosureId
in class IRScope
public LocalVariable getNewFlipStateVariable()
getNewFlipStateVariable
in class IRScope
public TemporaryVariable getNewTemporaryVariable()
getNewTemporaryVariable
in class IRScope
public TemporaryVariable getNewTemporaryVariable(String name)
getNewTemporaryVariable
in class IRScope
public Label getNewLabel()
getNewLabel
in class IRScope
public String getScopeName()
getScopeName
in class IRScope
public boolean isForLoopBody()
isForLoopBody
in class IRScope
public boolean isTopLocalVariableScope()
isTopLocalVariableScope
in class IRScope
public boolean isFlipScope()
isFlipScope
in class IRScope
public Operand[] getBlockArgs()
public String toStringBody()
public BlockBody getBlockBody()
public LocalVariable findExistingLocalVariable(String name, int scopeDepth)
findExistingLocalVariable
in class IRScope
public LocalVariable getNewLocalVariable(String name, int depth)
getNewLocalVariable
in class IRScope
public LocalVariable getLocalVariable(String name, int scopeDepth)
IRScope
getLocalVariable
in class IRScope
public int getNestingDepth()
public LocalVariable getImplicitBlockArg()
getImplicitBlockArg
in class IRScope
public IRClosure cloneForClonedInstr(InlinerInfo ii)
protected boolean addGEBForUncaughtBreaks()
Copyright © 2001-2014 JRuby. All Rights Reserved.