public class IRMethod extends IRScope
| Modifier and Type | Field and Description |
|---|---|
protected ArgumentDescriptor[] |
argDesc |
boolean |
isInstanceMethod |
compilable, fullInterpreterContext, interpreterContext, LOG, optimizedInterpreterContext, temporaryVariableIndex| Constructor and Description |
|---|
IRMethod(IRManager manager,
IRScope lexicalParent,
DefNode defn,
ByteList name,
boolean isInstanceMethod,
int lineNumber,
StaticScope staticScope,
boolean needsCodeCoverage) |
| Modifier and Type | Method and Description |
|---|---|
protected LocalVariable |
findExistingLocalVariable(RubySymbol name,
int scopeDepth) |
ArgumentDescriptor[] |
getArgumentDescriptors() |
LocalVariable |
getLocalVariable(RubySymbol name,
int scopeDepth)
Find or create a local variable.
|
MethodData |
getMethodData() |
IRScopeType |
getScopeType() |
boolean |
hasBeenBuilt()
For lazy scopes which IRBuild on demand we can ask this method whether it has been built yet...
|
InterpreterContext |
lazilyAcquireInterpreterContext() |
BasicBlock[] |
prepareForCompilation()
Run any necessary passes to get the IR ready for compilation (AOT and/or JIT)
|
void |
setArgumentDescriptors(ArgumentDescriptor[] argDesc)
Set upon completion of IRBuild of this IRMethod.
|
addChildScope, addClosure, allocateInterpreterContext, allocateInterpreterContext, bindingHasEscaped, buildJVMExceptionTable, canReceiveNonlocalReturns, captureParentRefinements, cleanupAfterExecution, computeScopeFlags, computeScopeFlagsEarly, createCurrentModuleVariable, createTemporaryVariable, debugOutput, definesLocalVariable, depends, dumpToIGV, equals, executesOnce, getByteName, getCFG, getClosures, getExecutedPasses, getExecutionContext, getFile, getFileName, getFlags, getFullInterpreterContext, getFullyQualifiedName, getId, getInterpreterContext, getLexicalParent, getLexicalScopes, getLine, getLineNumber, getLiveVariablesProblem, getLocalVariables, getLocalVariablesCount, getManager, getName, getNearestMethod, getNearestModuleReferencingScopeDepth, getNearestTopLocalVariableScope, getNewInlineVariable, getNewLabel, getNewLabel, getNewLocalVariable, getNewTemporaryVariable, getNewTemporaryVariableFor, getNewUnboxedVariable, getNextClosureId, getNextLabelIndex, getOptimizedInterpreterContext, getRootLexicalScope, getScopeId, getSelf, getStaticScope, getStoreLocalVarPlacementProblem, getTemporaryVariablesCount, getUnboxableOpsAnalysisProblem, getUsedLocalVariables, hasExplicitCallProtocol, hashCode, hasLoops, inlineMethod, inlineMethodCompiled, inlineMethodJIT, inliningAllowed, isModuleBody, isNestedInClosure, isNonSingletonClassBody, isScopeContainedBy, isScriptScope, isTopLocalVariableScope, isWithinEND, lookupExistingLVar, maybeUsingRefinements, needsBinding, needsFrame, needsOnlyBackref, parentMaybeUsingRefinements, persistScopeHeader, prepareFullBuild, putLiveVariablesProblem, putStoreLocalVarPlacementProblem, putUnboxableOpsAnalysisProblem, receivesKeywordArgs, removeClosure, resetState, reuseParentScope, setByteName, setExplicitCallProtocolFlag, setFileName, setHasLoopsFlag, setInterpreterContext, setIsMaybeUsingRefinements, setNextLabelIndex, setTemporaryVariableCount, toString, toStringCompileForm, toStringInstrs, usesEval, usesLocalVariable, usesZSuperpublic final boolean isInstanceMethod
protected ArgumentDescriptor[] argDesc
public IRMethod(IRManager manager, IRScope lexicalParent, DefNode defn, ByteList name, boolean isInstanceMethod, int lineNumber, StaticScope staticScope, boolean needsCodeCoverage)
public boolean hasBeenBuilt()
IRScopehasBeenBuilt in class IRScopepublic MethodData getMethodData()
public final InterpreterContext lazilyAcquireInterpreterContext()
public BasicBlock[] prepareForCompilation()
IRScopeprepareForCompilation in class IRScopepublic IRScopeType getScopeType()
getScopeType in class IRScopeprotected LocalVariable findExistingLocalVariable(RubySymbol name, int scopeDepth)
findExistingLocalVariable in class IRScopepublic LocalVariable getLocalVariable(RubySymbol name, int scopeDepth)
IRScopegetLocalVariable in class IRScopepublic ArgumentDescriptor[] getArgumentDescriptors()
public void setArgumentDescriptors(ArgumentDescriptor[] argDesc)
Copyright © 2001-2020 JRuby. All Rights Reserved.