public class LexicalSearchConstInstr extends Instr implements ResultInstr
| Modifier and Type | Field and Description |
|---|---|
private java.lang.Object |
cachedConstant |
(package private) java.lang.String |
constName |
(package private) Operand |
definingScope |
private java.lang.Object |
generation |
private Invalidator |
invalidator |
private Variable |
result |
EMPTY_OPERANDS| Constructor and Description |
|---|
LexicalSearchConstInstr(Variable result,
Operand definingScope,
java.lang.String constName) |
| Modifier and Type | Method and Description |
|---|---|
private java.lang.Object |
cache(ThreadContext context,
DynamicScope currDynScope,
IRubyObject self,
java.lang.Object[] temp,
Ruby runtime,
java.lang.Object constant) |
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).
|
Operand[] |
getOperands() |
Variable |
getResult() |
java.lang.Object |
interpret(ThreadContext context,
DynamicScope currDynScope,
IRubyObject self,
java.lang.Object[] temp,
Block block) |
private Invalidator |
invalidator(Ruby runtime) |
private boolean |
isCached(Ruby runtime,
java.lang.Object value) |
void |
simplifyOperands(java.util.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.
|
java.lang.String |
toString() |
void |
updateResult(Variable v) |
void |
visit(IRVisitor visitor) |
canBeDeleted, canRaiseException, cloneForBlockCloning, cloneForInlinedClosure, cloneForInlinedScope, getOperation, getUsedVariables, hasSideEffects, hasUnusedResult, interpretAndGetNewIPC, isDead, markDead, markUnusedResult, renameVars, simplifyAndGetResult, transfersControlOperand definingScope
java.lang.String constName
private Variable result
private transient volatile java.lang.Object cachedConstant
private java.lang.Object generation
private Invalidator invalidator
public Operand[] getOperands()
getOperands in class Instrpublic void simplifyOperands(java.util.Map<Operand,Operand> valueMap, boolean force)
InstrsimplifyOperands in class Instrpublic Variable getResult()
getResult in interface ResultInstrpublic void updateResult(Variable v)
updateResult in interface ResultInstrpublic Instr cloneForInlining(InlinerInfo ii)
InstrcloneForInlining in class Instrii - This object manages renaming of variables and labels, handles
args and return values.private java.lang.Object cache(ThreadContext context, DynamicScope currDynScope, IRubyObject self, java.lang.Object[] temp, Ruby runtime, java.lang.Object constant)
private boolean isCached(Ruby runtime, java.lang.Object value)
public java.lang.Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, java.lang.Object[] temp, Block block)
private Invalidator invalidator(Ruby runtime)