org.jikesrvm.compilers.opt.ir
Class Label

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ir.InstructionFormat
      extended by org.jikesrvm.compilers.opt.ir.Label

public final class Label
extends InstructionFormat

The Label InstructionFormat class. The header comment for Instruction contains an explanation of the role of InstructionFormats in the opt compiler's IR.


Field Summary
 
Fields inherited from class org.jikesrvm.compilers.opt.ir.InstructionFormat
ALoad_format, ALoad_traits, ARCH_INDEPENDENT_INSTR_FORMAT_END_format, AStore_format, AStore_traits, Athrow_format, Athrow_traits, Attempt_format, Attempt_traits, BBend_format, BBend_traits, Binary_format, Binary_traits, BooleanCmp_format, BooleanCmp_traits, BoundsCheck_format, BoundsCheck_traits, CacheOp_format, CacheOp_traits, Call_format, Call_traits, CondMove_format, CondMove_traits, Empty_format, Empty_traits, GetField_format, GetField_traits, GetStatic_format, GetStatic_traits, Goto_format, Goto_traits, GuardedBinary_format, GuardedBinary_traits, GuardedSet_format, GuardedSet_traits, GuardedUnary_format, GuardedUnary_traits, IfCmp_format, IfCmp_traits, IfCmp2_format, IfCmp2_traits, InlineGuard_format, InlineGuard_traits, InstanceOf_format, InstanceOf_traits, InstrumentedCounter_format, InstrumentedCounter_traits, Label_format, Label_traits, Load_format, Load_traits, LookupSwitch_format, LookupSwitch_traits, LowTableSwitch_format, LowTableSwitch_traits, MIN_OPERAND_ARRAY_LENGTH, MIR_BinaryAcc_format, MIR_BinaryAcc_traits, MIR_Branch_format, MIR_Branch_traits, MIR_CacheOp_format, MIR_CacheOp_traits, MIR_Call_format, MIR_Call_traits, MIR_CaseLabel_format, MIR_CaseLabel_traits, MIR_Compare_format, MIR_Compare_traits, MIR_CompareExchange_format, MIR_CompareExchange_traits, MIR_CompareExchange8B_format, MIR_CompareExchange8B_traits, MIR_CondBranch_format, MIR_CondBranch_traits, MIR_CondBranch2_format, MIR_CondBranch2_traits, MIR_CondMove_format, MIR_CondMove_traits, MIR_ConvertDW2QW_format, MIR_ConvertDW2QW_traits, MIR_Divide_format, MIR_Divide_traits, MIR_DoubleShift_format, MIR_DoubleShift_traits, MIR_Empty_format, MIR_Empty_traits, MIR_FSave_format, MIR_FSave_traits, MIR_Lea_format, MIR_Lea_traits, MIR_LowTableSwitch_format, MIR_LowTableSwitch_traits, MIR_Move_format, MIR_Move_traits, MIR_Multiply_format, MIR_Multiply_traits, MIR_Nullary_format, MIR_Nullary_traits, MIR_RDTSC_format, MIR_RDTSC_traits, MIR_Return_format, MIR_Return_traits, MIR_Set_format, MIR_Set_traits, MIR_Test_format, MIR_Test_traits, MIR_Trap_format, MIR_Trap_traits, MIR_TrapIf_format, MIR_TrapIf_traits, MIR_Unary_format, MIR_Unary_traits, MIR_UnaryAcc_format, MIR_UnaryAcc_traits, MIR_UnaryNoRes_format, MIR_UnaryNoRes_traits, MIR_XChng_format, MIR_XChng_traits, MonitorOp_format, MonitorOp_traits, Move_format, Move_traits, Multianewarray_format, Multianewarray_traits, New_format, New_traits, NewArray_format, NewArray_traits, Nullary_format, Nullary_traits, NullCheck_format, NullCheck_traits, OsrBarrier_format, OsrBarrier_traits, OsrPoint_format, OsrPoint_traits, Phi_format, Phi_traits, Prepare_format, Prepare_traits, Prologue_format, Prologue_traits, PutField_format, PutField_traits, PutStatic_format, PutStatic_traits, Return_format, Return_traits, Store_format, Store_traits, StoreCheck_format, StoreCheck_traits, TableSwitch_format, TableSwitch_traits, Trap_format, Trap_traits, TrapIf_format, TrapIf_traits, TypeCheck_format, TypeCheck_traits, Unary_format, Unary_traits, Unassigned_format, ZeroCheck_format, ZeroCheck_traits
 
Constructor Summary
Label()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for Label.
static boolean conforms(Operator o)
          InstructionFormat identification method for Label.
static Instruction create(Operator o, BasicBlockOperand Block)
          Create an instruction of the Label instruction format.
static BasicBlockOperand getBlock(Instruction i)
          Get the operand called Block from the argument instruction.
static BasicBlockOperand getClearBlock(Instruction i)
          Get the operand called Block from the argument instruction clearing its instruction pointer.
static boolean hasBlock(Instruction i)
          Does the argument instruction have a non-null operand named Block?
static int indexOfBlock(Instruction i)
          Return the index of the operand called Block in the argument instruction.
static Instruction mutate(Instruction i, Operator o, BasicBlockOperand Block)
          Mutate the argument instruction into an instruction of the Label instruction format having the specified operator and operands.
static void setBlock(Instruction i, BasicBlockOperand Block)
          Set the operand called Block in the argument instruction to the argument operand.
 
Methods inherited from class org.jikesrvm.compilers.opt.ir.InstructionFormat
fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Label

public Label()
Method Detail

conforms

public static boolean conforms(Instruction i)
InstructionFormat identification method for Label.

Parameters:
i - an instruction
Returns:
true if the InstructionFormat of the argument instruction is Label or false if it is not.

conforms

public static boolean conforms(Operator o)
InstructionFormat identification method for Label.

Parameters:
o - an instruction
Returns:
true if the InstructionFormat of the argument operator is Label or false if it is not.

getBlock

public static BasicBlockOperand getBlock(Instruction i)
Get the operand called Block from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Block

getClearBlock

public static BasicBlockOperand getClearBlock(Instruction i)
Get the operand called Block from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Block

setBlock

public static void setBlock(Instruction i,
                            BasicBlockOperand Block)
Set the operand called Block in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
Block - the operand to store

indexOfBlock

public static int indexOfBlock(Instruction i)
Return the index of the operand called Block in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called Block in the argument instruction

hasBlock

public static boolean hasBlock(Instruction i)
Does the argument instruction have a non-null operand named Block?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named Block or false if it does not.

create

public static Instruction create(Operator o,
                                 BasicBlockOperand Block)
Create an instruction of the Label instruction format.

Parameters:
o - the instruction's operator
Block - the instruction's Block operand
Returns:
the newly created Label instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 BasicBlockOperand Block)
Mutate the argument instruction into an instruction of the Label instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Block - the instruction's Block operand
Returns:
the mutated instruction