public class IRClosure extends IRScope
Modifier and Type | Field and Description |
---|---|
protected ArgumentDescriptor[] |
argDesc |
int |
closureId |
compilable, fullInterpreterContext, interpreterContext, LOG, optimizedInterpreterContext
Modifier | Constructor and Description |
---|---|
protected |
IRClosure(IRClosure c,
IRScope lexicalParent,
int closureId,
ByteList fullName)
Used by cloning code for inlining
|
protected |
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
ByteList prefix) |
|
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
Signature signature) |
|
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
Signature signature,
boolean needsCoverage) |
|
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
Signature signature,
ByteList prefix) |
|
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
Signature signature,
ByteList prefix,
boolean isBeginEndBlock) |
|
IRClosure(IRManager manager,
IRScope lexicalParent,
int lineNumber,
StaticScope staticScope,
Signature signature,
ByteList prefix,
boolean isBeginEndBlock,
boolean needsCoverage) |
Modifier and Type | Method and Description |
---|---|
InterpreterContext |
allocateInterpreterContext(java.util.List<Instr> instructions,
int temporaryVariableCount,
java.util.EnumSet<IRFlags> flags)
Make version specific to scope which needs it (e.g.
|
InterpreterContext |
allocateInterpreterContext(java.util.function.Supplier<java.util.List<Instr>> instructions,
int temporaryVariableCount,
java.util.EnumSet<IRFlags> flags)
Make version specific to scope which needs it (e.g.
|
IRClosure |
cloneForInlining(CloneInfo ii) |
protected IRClosure |
cloneForInlining(CloneInfo ii,
IRClosure clone) |
IRMethod |
convertToMethod(ByteList name) |
protected LocalVariable |
findExistingLocalVariable(RubySymbol name,
int scopeDepth) |
ArgumentDescriptor[] |
getArgumentDescriptors() |
BlockBody |
getBlockBody() |
org.objectweb.asm.Handle |
getHandle() |
LocalVariable |
getLocalVariable(RubySymbol name,
int depth)
Find or create a local variable.
|
Label |
getNewLabel() |
LocalVariable |
getNewLocalVariable(RubySymbol name,
int depth) |
int |
getNextClosureId() |
IRScopeType |
getScopeType() |
Signature |
getSignature() |
boolean |
isEND() |
boolean |
isNestedClosuresSafeForMethodConversion() |
boolean |
isTopLocalVariableScope() |
void |
persistScopeHeader(IRWriterEncoder file) |
void |
setArgumentDescriptors(ArgumentDescriptor[] argDesc)
Set upon completion of IRBuild of this IRClosure.
|
void |
setByteName(ByteList name) |
void |
setHandle(org.objectweb.asm.Handle handle) |
void |
setIsEND() |
void |
setSource(IterNode iter) |
java.lang.String |
toStringBody() |
accessesParentsLocalVariables, addChildScope, addClosure, allocateInitialFlags, buildJVMExceptionTable, canCaptureCallersBinding, canReceiveBreaks, canReceiveNonlocalReturns, captureParentRefinements, cleanupAfterExecution, debugOutput, depends, dumpToIGV, equals, executesOnce, getByteName, getClosures, getExecutedPasses, getExecutionContext, getFile, getFileName, getFullInterpreterContext, getFullyQualifiedName, getId, getInterpreterContext, getLexicalParent, getLexicalScopes, getLine, getLineNumber, getLocalVariables, getManager, getName, getNearestMethod, getNearestModuleReferencingScopeDepth, getNearestTopLocalVariableScope, getNewLabel, getNextLabelIndex, getOptimizedInterpreterContext, getRootLexicalScope, getScopeId, getSelf, getStaticScope, hasBeenBuilt, hasBreakInstructions, hashCode, hasLoops, hasNonLocalReturns, inlineMethod, inlineMethodCompiled, inlineMethodJIT, inliningAllowed, isModuleBody, isNestedInClosure, isNonSingletonClassBody, isScopeContainedBy, isScriptScope, isWithinEND, lookupExistingLVar, maybeUsingRefinements, needsCodeCoverage, parentMaybeUsingRefinements, persistScopeFlags, prepareForCompilation, prepareFullBuild, receivesClosureArg, receivesKeywordArgs, removeClosure, setAccessesParentsLocalVariables, setCanCaptureCallersBinding, setCanReceiveBreaks, setCanReceiveNonlocalReturns, setFileName, setHasBreakInstructions, setHasLoops, setHasNonLocalReturns, setIsMaybeUsingRefinements, setNeedsCodeCoverage, setNextLabelIndex, setReceivesClosureArg, setReceivesKeywordArgs, setUsesEval, setUsesZSuper, toString, toStringCompileForm, toStringInstrs, usesEval, usesZSuper
public final int closureId
protected ArgumentDescriptor[] argDesc
protected IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, ByteList prefix)
protected IRClosure(IRClosure c, IRScope lexicalParent, int closureId, ByteList fullName)
public IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, Signature signature)
public IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, Signature signature, boolean needsCoverage)
public IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, Signature signature, ByteList prefix)
public IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, Signature signature, ByteList prefix, boolean isBeginEndBlock)
public IRClosure(IRManager manager, IRScope lexicalParent, int lineNumber, StaticScope staticScope, Signature signature, ByteList prefix, boolean isBeginEndBlock, boolean needsCoverage)
public InterpreterContext allocateInterpreterContext(java.util.List<Instr> instructions, int temporaryVariableCount, java.util.EnumSet<IRFlags> flags)
IRScope
allocateInterpreterContext
in class IRScope
public InterpreterContext allocateInterpreterContext(java.util.function.Supplier<java.util.List<Instr>> instructions, int temporaryVariableCount, java.util.EnumSet<IRFlags> flags)
IRScope
allocateInterpreterContext
in class IRScope
public void setIsEND()
public boolean isEND()
public int getNextClosureId()
getNextClosureId
in class IRScope
public Label getNewLabel()
getNewLabel
in class IRScope
public IRScopeType getScopeType()
getScopeType
in class IRScope
public boolean isTopLocalVariableScope()
isTopLocalVariableScope
in class IRScope
public java.lang.String toStringBody()
public BlockBody getBlockBody()
public boolean isNestedClosuresSafeForMethodConversion()
public void setSource(IterNode iter)
protected LocalVariable findExistingLocalVariable(RubySymbol name, int scopeDepth)
findExistingLocalVariable
in class IRScope
public LocalVariable getNewLocalVariable(RubySymbol name, int depth)
getNewLocalVariable
in class IRScope
public LocalVariable getLocalVariable(RubySymbol name, int depth)
IRScope
getLocalVariable
in class IRScope
public void setByteName(ByteList name)
setByteName
in class IRScope
public Signature getSignature()
public void setHandle(org.objectweb.asm.Handle handle)
public org.objectweb.asm.Handle getHandle()
public ArgumentDescriptor[] getArgumentDescriptors()
public void setArgumentDescriptors(ArgumentDescriptor[] argDesc)
public void persistScopeHeader(IRWriterEncoder file)
persistScopeHeader
in class IRScope
Copyright © 2001-2020 JRuby. All Rights Reserved.