Package org.jruby.ir.instructions
Class CallInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.NOperandInstr
org.jruby.ir.instructions.CallBase
org.jruby.ir.instructions.CallInstr
- All Implemented Interfaces:
ClosureAcceptingInstr
,ResultInstr
,Site
- Direct Known Subclasses:
ClassSuperInstr
,EQQInstr
,InstanceSuperInstr
,MatchInstr
,OneFixnumArgNoBlockCallInstr
,OneFloatArgNoBlockCallInstr
,OneOperandArgBlockCallInstr
,OneOperandArgNoBlockCallInstr
,TwoOperandArgNoBlockCallInstr
,UnresolvedSuperInstr
,ZeroOperandArgNoBlockCallInstr
-
Field Summary
FieldsFields inherited from class org.jruby.ir.instructions.CallBase
argsCount, callSite, callSiteCounter, callSiteId, hasClosure, name
Fields inherited from class org.jruby.ir.instructions.NOperandInstr
operands
Fields inherited from class org.jruby.ir.instructions.Instr
EMPTY_OPERANDS
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
CallInstr
(IRScope scope, Operation op, CallType callType, Variable result, RubySymbol name, Operand receiver, Operand[] args, Operand closure, int flags, boolean potentiallyRefined) protected
CallInstr
(IRScope scope, Operation op, CallType callType, Variable result, RubySymbol name, Operand receiver, Operand[] args, Operand closure, int flags, boolean potentiallyRefined, CallSite callSite, long callSiteId) CallInstr
(IRScope scope, CallType callType, Variable result, RubySymbol name, Operand receiver, Operand[] args, Operand closure, int flags, boolean potentiallyRefined) -
Method Summary
Modifier and TypeMethodDescriptionClone 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
(IRScope scope, CallType callType, Variable result, RubySymbol name, Operand receiver, Operand[] args, Operand closure, int flags) static CallInstr
void
void
void
Methods inherited from class org.jruby.ir.instructions.CallBase
blockInlining, canBeEval, cloneCallArgs, computeScopeFlags, containsArgSplat, getArg1, getArgsCount, getCallArgs, getCallSite, getCallSiteFor, getCallSiteId, getCallType, getClosureArg, getClosureArg, getFlags, getId, getName, getReceiver, hasLiteralClosure, inliningBlocked, interpret, isAllFixnums, isAllFloats, isPotentiallyRefined, prepareArguments, prepareArgumentsComplex, prepareArgumentsSimple, prepareBlock, setCallSiteId, simplifyOperands, splatMap, targetRequiresCallersBinding, targetRequiresCallersFrame, toStringNonOperandArgs
Methods inherited from class org.jruby.ir.instructions.NOperandInstr
getOperands, setOperand
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyInstr, simplifyOperands, toString, transfersControl
-
Field Details
-
result
-
-
Constructor Details
-
CallInstr
-
CallInstr
-
CallInstr
-
-
Method Details
-
create
-
encode
-
decode
-
getResult
- Specified by:
getResult
in interfaceResultInstr
- Specified by:
getResult
in classCallBase
-
updateResult
- Specified by:
updateResult
in interfaceResultInstr
-
clone
Description copied from class:Instr
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). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode. -
visit
-