org.jikesrvm.compilers.opt.ir
Class InstrumentedCounter

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

public final class InstrumentedCounter
extends InstructionFormat

The InstrumentedCounter 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
InstrumentedCounter()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for InstrumentedCounter.
static boolean conforms(Operator o)
          InstructionFormat identification method for InstrumentedCounter.
static Instruction create(Operator o, IntConstantOperand Data, IntConstantOperand Index, Operand Increment)
          Create an instruction of the InstrumentedCounter instruction format.
static IntConstantOperand getClearData(Instruction i)
          Get the operand called Data from the argument instruction clearing its instruction pointer.
static Operand getClearIncrement(Instruction i)
          Get the operand called Increment from the argument instruction clearing its instruction pointer.
static IntConstantOperand getClearIndex(Instruction i)
          Get the operand called Index from the argument instruction clearing its instruction pointer.
static IntConstantOperand getData(Instruction i)
          Get the operand called Data from the argument instruction.
static Operand getIncrement(Instruction i)
          Get the operand called Increment from the argument instruction.
static IntConstantOperand getIndex(Instruction i)
          Get the operand called Index from the argument instruction.
static boolean hasData(Instruction i)
          Does the argument instruction have a non-null operand named Data?
static boolean hasIncrement(Instruction i)
          Does the argument instruction have a non-null operand named Increment?
static boolean hasIndex(Instruction i)
          Does the argument instruction have a non-null operand named Index?
static int indexOfData(Instruction i)
          Return the index of the operand called Data in the argument instruction.
static int indexOfIncrement(Instruction i)
          Return the index of the operand called Increment in the argument instruction.
static int indexOfIndex(Instruction i)
          Return the index of the operand called Index in the argument instruction.
static Instruction mutate(Instruction i, Operator o, IntConstantOperand Data, IntConstantOperand Index, Operand Increment)
          Mutate the argument instruction into an instruction of the InstrumentedCounter instruction format having the specified operator and operands.
static void setData(Instruction i, IntConstantOperand Data)
          Set the operand called Data in the argument instruction to the argument operand.
static void setIncrement(Instruction i, Operand Increment)
          Set the operand called Increment in the argument instruction to the argument operand.
static void setIndex(Instruction i, IntConstantOperand Index)
          Set the operand called Index 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

InstrumentedCounter

public InstrumentedCounter()
Method Detail

conforms

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

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

conforms

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

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

getData

public static IntConstantOperand getData(Instruction i)
Get the operand called Data 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 Data

getClearData

public static IntConstantOperand getClearData(Instruction i)
Get the operand called Data 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 Data

setData

public static void setData(Instruction i,
                           IntConstantOperand Data)
Set the operand called Data 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
Data - the operand to store

indexOfData

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

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

hasData

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

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

getIndex

public static IntConstantOperand getIndex(Instruction i)
Get the operand called Index 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 Index

getClearIndex

public static IntConstantOperand getClearIndex(Instruction i)
Get the operand called Index 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 Index

setIndex

public static void setIndex(Instruction i,
                            IntConstantOperand Index)
Set the operand called Index 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
Index - the operand to store

indexOfIndex

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

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

hasIndex

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

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

getIncrement

public static Operand getIncrement(Instruction i)
Get the operand called Increment 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 Increment

getClearIncrement

public static Operand getClearIncrement(Instruction i)
Get the operand called Increment 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 Increment

setIncrement

public static void setIncrement(Instruction i,
                                Operand Increment)
Set the operand called Increment 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
Increment - the operand to store

indexOfIncrement

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

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

hasIncrement

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

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

create

public static Instruction create(Operator o,
                                 IntConstantOperand Data,
                                 IntConstantOperand Index,
                                 Operand Increment)
Create an instruction of the InstrumentedCounter instruction format.

Parameters:
o - the instruction's operator
Data - the instruction's Data operand
Index - the instruction's Index operand
Increment - the instruction's Increment operand
Returns:
the newly created InstrumentedCounter instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 IntConstantOperand Data,
                                 IntConstantOperand Index,
                                 Operand Increment)
Mutate the argument instruction into an instruction of the InstrumentedCounter instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Data - the instruction's Data operand
Index - the instruction's Index operand
Increment - the instruction's Increment operand
Returns:
the mutated instruction