public class CallInstr extends CallBase implements ResultInstr
Modifier and Type | Field and Description |
---|---|
protected Variable |
result |
arguments, callSite, callSiteId, closure, methAddr, profile, receiver
EMPTY_OPERANDS
Modifier | Constructor and Description |
---|---|
|
CallInstr(CallType callType,
Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure) |
|
CallInstr(Operation op,
CallInstr ordinary) |
protected |
CallInstr(Operation op,
CallType callType,
Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure) |
Modifier and Type | Method and Description |
---|---|
Instr |
cloneForInlining(InlinerInfo ii)
Clone the instruction for use in an inlining context (either when a scope is inlined into
another scope, or when a block has to be cloned because its associated call belongs to
an inlined scope).
|
static CallInstr |
create(CallType callType,
Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure) |
static CallInstr |
create(Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure) |
Instr |
discardResult() |
Variable |
getResult() |
CallBase |
specializeForInterpretation()
Interpreter can ask the instruction if it knows how to make a more
efficient instruction for direct interpretation.
|
String |
toString() |
void |
updateResult(Variable v) |
void |
visit(IRVisitor visitor) |
blockInlining, canBeEval, canModifyCode, canSetDollarVars, cloneCallArgs, containsSplat, getCallArgs, getCallSite, getCallType, getClosureArg, getMethodAddr, getOperands, getReceiver, hasClosure, inliningBlocked, interpret, isAllConstants, isAllFixnums, isRubyInternalsCall, isStaticCallTarget, prepareArguments, prepareArgumentsComplex, prepareArgumentsSimple, prepareBlock, simplifyOperands, targetRequiresCallersBinding
canBeDeleted, canRaiseException, cloneForBlockCloning, cloneForInlinedClosure, cloneForInlinedScope, getOperation, getUsedVariables, hasSideEffects, hasUnusedResult, interpretAndGetNewIPC, isDead, markDead, markUnusedResult, renameVars, simplifyAndGetResult, transfersControl
protected Variable result
public CallInstr(CallType callType, Variable result, MethAddr methAddr, Operand receiver, Operand[] args, Operand closure)
protected CallInstr(Operation op, CallType callType, Variable result, MethAddr methAddr, Operand receiver, Operand[] args, Operand closure)
public static CallInstr create(Variable result, MethAddr methAddr, Operand receiver, Operand[] args, Operand closure)
public static CallInstr create(CallType callType, Variable result, MethAddr methAddr, Operand receiver, Operand[] args, Operand closure)
public Variable getResult()
getResult
in interface ResultInstr
public void updateResult(Variable v)
updateResult
in interface ResultInstr
public CallBase specializeForInterpretation()
CallBase
specializeForInterpretation
in interface Specializeable
specializeForInterpretation
in class CallBase
public Instr discardResult()
public Instr cloneForInlining(InlinerInfo ii)
Instr
cloneForInlining
in class Instr
ii
- This object manages renaming of variables and labels, handles
args and return values.Copyright © 2001-2014 JRuby. All Rights Reserved.