public class InheritanceSearchConstInstr extends Instr implements ResultInstr
| Modifier and Type | Field and Description |
|---|---|
private java.lang.Object |
cachedConstant |
(package private) java.lang.String |
constName |
(package private) Operand |
currentModule |
private java.lang.Object |
generation |
private int |
hash |
private Invalidator |
invalidator |
private boolean |
noPrivateConsts |
private Variable |
result |
EMPTY_OPERANDS| Constructor and Description |
|---|
InheritanceSearchConstInstr(Variable result,
Operand currentModule,
java.lang.String constName,
boolean noPrivateConsts) |
| Modifier and Type | Method and Description |
|---|---|
private java.lang.Object |
cache(Ruby runtime,
RubyModule module) |
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).
|
java.lang.String |
getConstName() |
Operand |
getCurrentModule() |
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,
RubyModule target,
java.lang.Object value) |
boolean |
isNoPrivateConsts() |
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 currentModule
java.lang.String constName
private Variable result
private boolean noPrivateConsts
private transient volatile java.lang.Object cachedConstant
private volatile int hash
private volatile 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(Ruby runtime, RubyModule module)
private boolean isCached(Ruby runtime, RubyModule target, java.lang.Object value)
public java.lang.Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, java.lang.Object[] temp, Block block)
public Operand getCurrentModule()
public java.lang.String getConstName()
public boolean isNoPrivateConsts()
private Invalidator invalidator(Ruby runtime)