org.jikesrvm.compilers.opt.ir
Class BranchProfileCarrier

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

public final class BranchProfileCarrier
extends InstructionFormat

InstructionFormats that have a BranchProfile (which is BranchProfileOperand)


Field Summary
private static int[] _index
           
 
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
BranchProfileCarrier()
           
 
Method Summary
static boolean conforms(Instruction i)
          Does the instruction belong to an instruction format that has an operand called BranchProfile?
static boolean conforms(Operator o)
          Does the operator belong to an instruction format that has an operand called BranchProfile?
static BranchProfileOperand getBranchProfile(Instruction i)
          Get the operand called BranchProfile from the argument instruction.
static BranchProfileOperand getClearBranchProfile(Instruction i)
          Get the operand called BranchProfile from the argument instruction clearing its instruction pointer.
static boolean hasBranchProfile(Instruction i)
          Does the argument instruction have a non-null operand named BranchProfile?
static int indexOfBranchProfile(Instruction i)
          Return the index of the operand called BranchProfile in the argument instruction.
static void setBranchProfile(Instruction i, BranchProfileOperand op)
          Set the operand called BranchProfile 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
 

Field Detail

_index

private static final int[] _index
Constructor Detail

BranchProfileCarrier

public BranchProfileCarrier()
Method Detail

conforms

public static boolean conforms(Instruction i)
Does the instruction belong to an instruction format that has an operand called BranchProfile?

Parameters:
i - the instruction to test
Returns:
true if the instruction's instruction format has an operand called BranchProfile and false if it does not.

conforms

public static boolean conforms(Operator o)
Does the operator belong to an instruction format that has an operand called BranchProfile?

Parameters:
o - the operator to test
Returns:
true if the instruction's instruction format has an operand called BranchProfile and false if it does not.

getBranchProfile

public static BranchProfileOperand getBranchProfile(Instruction i)
Get the operand called BranchProfile 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 BranchProfile

getClearBranchProfile

public static BranchProfileOperand getClearBranchProfile(Instruction i)
Get the operand called BranchProfile 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 BranchProfile

setBranchProfile

public static void setBranchProfile(Instruction i,
                                    BranchProfileOperand op)
Set the operand called BranchProfile 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
op - the operand to store

indexOfBranchProfile

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

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

hasBranchProfile

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

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