Package com.tonic.analysis.ssa.ir
Class TypeCheckInstruction
- java.lang.Object
-
- com.tonic.analysis.ssa.ir.IRInstruction
-
- com.tonic.analysis.ssa.ir.TypeCheckInstruction
-
public class TypeCheckInstruction extends IRInstruction
A checkcast or instanceof test, distinguished by itsTypeCheckOp.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Taccept(IRVisitor<T> visitor)Accepts a visitor for this instruction.IRInstructioncopyWithNewOperands(SSAValue newResult, List<Value> newOperands)Creates a copy of this instruction with new result and operands.static TypeCheckInstructioncreateCast(SSAValue result, Value operand, IRType targetType)Creates a checkcast.static TypeCheckInstructioncreateInstanceOf(SSAValue result, Value operand, IRType checkType)Creates an instanceof test.TypeCheckOpgetOp()ValuegetOperand()List<Value>getOperands()Gets the operands used by this instruction.IRTypegetTargetType()booleanisCast()booleanisInstanceOf()voidreplaceOperand(Value oldValue, Value newValue)Replaces an operand value with a new value.StringtoString()-
Methods inherited from class com.tonic.analysis.ssa.ir.IRInstruction
equals, getBlock, getBytecodeOffset, getId, getResult, getResultType, hashCode, hasResult, isPhi, isTerminator, replaceTarget, resetIdCounter, setBlock, setBytecodeOffset, setResult
-
-
-
-
Method Detail
-
createCast
public static TypeCheckInstruction createCast(SSAValue result, Value operand, IRType targetType)
Creates a checkcast.- Parameters:
result- the SSA value receiving the cast referenceoperand- the reference to casttargetType- the type to cast to- Returns:
- the cast instruction
-
createInstanceOf
public static TypeCheckInstruction createInstanceOf(SSAValue result, Value operand, IRType checkType)
Creates an instanceof test.- Parameters:
result- the SSA value receiving the boolean resultoperand- the reference to testcheckType- the type to test against- Returns:
- the instanceof instruction
-
getOp
public TypeCheckOp getOp()
- Returns:
- the op
-
getOperand
public Value getOperand()
- Returns:
- the operand
-
getTargetType
public IRType getTargetType()
- Returns:
- the target type
-
isCast
public boolean isCast()
- Returns:
- true if this is a checkcast
-
isInstanceOf
public boolean isInstanceOf()
- Returns:
- true if this is an instanceof test
-
getOperands
public List<Value> getOperands()
Description copied from class:IRInstructionGets the operands used by this instruction.- Specified by:
getOperandsin classIRInstruction- Returns:
- list of operand values
-
replaceOperand
public void replaceOperand(Value oldValue, Value newValue)
Description copied from class:IRInstructionReplaces an operand value with a new value.- Specified by:
replaceOperandin classIRInstruction- Parameters:
oldValue- the value to replacenewValue- the replacement value
-
accept
public <T> T accept(IRVisitor<T> visitor)
Description copied from class:IRInstructionAccepts a visitor for this instruction.- Specified by:
acceptin classIRInstruction- Type Parameters:
T- the return type- Parameters:
visitor- the visitor to accept- Returns:
- the visitor result
-
copyWithNewOperands
public IRInstruction copyWithNewOperands(SSAValue newResult, List<Value> newOperands)
Description copied from class:IRInstructionCreates a copy of this instruction with new result and operands.- Overrides:
copyWithNewOperandsin classIRInstruction- Parameters:
newResult- the new result value (may be null)newOperands- the new operand values- Returns:
- a copy of this instruction, or null if copying not supported
-
-