public class ModuleVersionGuardInstr extends Instr
EMPTY_OPERANDS
Constructor and Description |
---|
ModuleVersionGuardInstr(RubyModule module,
int expectedVersion,
Operand candidateObj,
Label failurePathLabel) |
Modifier and Type | Method and Description |
---|---|
Instr |
cloneForBlockCloning(InlinerInfo ii)
Clone the instruction so it can be used in a cloned block which is present in a scope that itself
or an ancestor scope (in the case of nested blocks) is being inlined.
|
Instr |
cloneForInlinedScope(InlinerInfo ii)
Clone the instruction (present in a method/closure) so it can be inlined into another scope.
|
Label |
getFailurePathLabel() |
Operand[] |
getOperands() |
int |
interpretAndGetNewIPC(ThreadContext context,
DynamicScope currDynScope,
IRubyObject self,
Object[] temp,
int ipc) |
void |
simplifyOperands(Map<Operand,Operand> valueMap,
boolean force)
This method takes as input a map of operands to their values, and outputs
If the value map provides a value for any of the instruction's operands
this method is expected to replace the original operands with the simplified values.
|
String |
toString() |
void |
visit(IRVisitor visitor) |
canBeDeleted, canRaiseException, cloneForInlinedClosure, cloneForInlining, getOperation, getUsedVariables, hasSideEffects, hasUnusedResult, interpret, isDead, markDead, markUnusedResult, renameVars, simplifyAndGetResult, transfersControl
public ModuleVersionGuardInstr(RubyModule module, int expectedVersion, Operand candidateObj, Label failurePathLabel)
public Label getFailurePathLabel()
public Operand[] getOperands()
getOperands
in class Instr
public void simplifyOperands(Map<Operand,Operand> valueMap, boolean force)
Instr
simplifyOperands
in class Instr
public Instr cloneForInlinedScope(InlinerInfo ii)
Instr
cloneForInlinedScope
in class Instr
public Instr cloneForBlockCloning(InlinerInfo ii)
Instr
cloneForBlockCloning
in class Instr
public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, int ipc)
interpretAndGetNewIPC
in class Instr
Copyright © 2001-2016 JRuby. All Rights Reserved.