Package org.jruby.ir.operands
Class Label
java.lang.Object
org.jruby.ir.operands.Operand
org.jruby.ir.operands.Label
-
Field Summary
FieldsFields inherited from class org.jruby.ir.operands.Operand
EMPTY_ARRAY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Append the list of variables used in this operand to the input list -- force every operand to implement this because a missing implementation can cause bad failures.boolean
Can we replace every use of a variable 'v' that contains the value of this operand with the operand itself? This takes importance when there are at least two uses of 'v' within this scope.clone()
static Label
void
boolean
static Label
int
int
hashCode()
boolean
void
setTargetPC
(int i) toString()
void
Methods inherited from class org.jruby.ir.operands.Operand
getSimplifiedOperand, getValue, hasKnownValue, isFalseyImmediate, isTruthyImmediate, retrieve
-
Field Details
-
UNRESCUED_REGION_LABEL
-
prefix
-
id
public final int id
-
-
Constructor Details
-
Label
-
-
Method Details
-
getGlobalEnsureBlockLabel
-
getOperandType
- Specified by:
getOperandType
in classOperand
-
toString
-
addUsedVariables
Description copied from class:Operand
Append the list of variables used in this operand to the input list -- force every operand to implement this because a missing implementation can cause bad failures.- Specified by:
addUsedVariables
in classOperand
-
canCopyPropagate
public boolean canCopyPropagate()Description copied from class:Operand
Can we replace every use of a variable 'v' that contains the value of this operand with the operand itself? This takes importance when there are at least two uses of 'v' within this scope. Ex: v = [1,2,3]; x = v; y = v In this case, we cannot replace the occurrences of 'v' because we would then get x = [1,2,3]; y = [1,2,3] which would then result in two different array objects being constructed instead of a single one.- Overrides:
canCopyPropagate
in classOperand
- Returns:
- true if it is safe to copy-propagate the operand.
-
hashCode
public int hashCode() -
equals
-
isGlobalEnsureBlockLabel
public boolean isGlobalEnsureBlockLabel() -
clone
-
cloneForInlining
- Specified by:
cloneForInlining
in classOperand
-
setTargetPC
public void setTargetPC(int i) -
getTargetPC
public int getTargetPC() -
encode
-
decode
-
visit
-