Package | Description |
---|---|
org.jikesrvm.compilers.opt.bc2ir |
Provides classes that implement the transformation from bytecode to the
high-level intermediate representation (HIR).
|
org.jikesrvm.compilers.opt.hir2lir | |
org.jikesrvm.compilers.opt.ir | |
org.jikesrvm.compilers.opt.ir.ia32 | |
org.jikesrvm.compilers.opt.ir.operand | |
org.jikesrvm.compilers.opt.ir.ppc | |
org.jikesrvm.compilers.opt.lir2mir.ia32 |
Provides classes that implement the IA32-specific parts
of the transition from low-level IR to machine-specific IR.
|
Modifier and Type | Method and Description |
---|---|
(package private) BranchProfileOperand |
GenerationContext.getConditionalBranchProfileOperand(int bcIndex,
boolean backwards) |
Modifier and Type | Method and Description |
---|---|
private static Instruction |
DynamicTypeCheckExpansion.generateBranchingTypeCheck(Instruction s,
IR ir,
Operand RHSobj,
TypeReference LHStype,
Operand RHStib,
BasicBlock trueBlock,
BasicBlock falseBlock,
RegisterOperand oldGuard,
BranchProfileOperand falseProb)
Generate a branching dynamic type check.
|
Modifier and Type | Method and Description |
---|---|
static BranchProfileOperand |
BranchProfileCarrier.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
BooleanCmp.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
InlineGuard.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
IfCmp.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
LowTableSwitch.getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
TableSwitch.getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
LookupSwitch.getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
IfCmp2.getBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the
argument instruction.
|
static BranchProfileOperand |
IfCmp2.getBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the
argument instruction.
|
static BranchProfileOperand |
BranchProfileCarrier.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
BooleanCmp.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
InlineGuard.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
IfCmp.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
LowTableSwitch.getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
TableSwitch.getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
LookupSwitch.getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
IfCmp2.getClearBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
IfCmp2.getClearBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
TableSwitch.getClearDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
LookupSwitch.getClearDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
TableSwitch.getDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the
argument instruction.
|
static BranchProfileOperand |
LookupSwitch.getDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the
argument instruction.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
InlineGuard.create(Operator o,
Operand Value,
Operand Guard,
Operand Goal,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Create an instruction of the InlineGuard instruction format.
|
static Instruction |
LookupSwitch.create(Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Create an instruction of the LookupSwitch instruction format.
|
static Instruction |
TableSwitch.create(Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
IntConstantOperand Low,
IntConstantOperand High,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Create an instruction of the TableSwitch instruction format.
|
static Instruction |
IfCmp.create(Operator o,
RegisterOperand GuardResult,
Operand Val1,
Operand Val2,
ConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Create an instruction of the IfCmp instruction format.
|
static Instruction |
IfCmp2.create(Operator o,
RegisterOperand GuardResult,
Operand Val1,
Operand Val2,
ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Create an instruction of the IfCmp2 instruction format.
|
static Instruction |
BooleanCmp.create(Operator o,
RegisterOperand Result,
Operand Val1,
Operand Val2,
ConditionOperand Cond,
BranchProfileOperand BranchProfile)
Create an instruction of the BooleanCmp instruction format.
|
static Instruction |
InlineGuard.mutate(Instruction i,
Operator o,
Operand Value,
Operand Guard,
Operand Goal,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
InlineGuard instruction format having the specified
operator and operands.
|
static Instruction |
LookupSwitch.mutate(Instruction i,
Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Mutate the argument instruction into an instruction of the
LookupSwitch instruction format having the specified
operator and operands.
|
static Instruction |
TableSwitch.mutate(Instruction i,
Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
IntConstantOperand Low,
IntConstantOperand High,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Mutate the argument instruction into an instruction of the
TableSwitch instruction format having the specified
operator and operands.
|
static Instruction |
IfCmp.mutate(Instruction i,
Operator o,
RegisterOperand GuardResult,
Operand Val1,
Operand Val2,
ConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
IfCmp instruction format having the specified
operator and operands.
|
static Instruction |
IfCmp2.mutate(Instruction i,
Operator o,
RegisterOperand GuardResult,
Operand Val1,
Operand Val2,
ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
IfCmp2 instruction format having the specified
operator and operands.
|
static Instruction |
BooleanCmp.mutate(Instruction i,
Operator o,
RegisterOperand Result,
Operand Val1,
Operand Val2,
ConditionOperand Cond,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
BooleanCmp instruction format having the specified
operator and operands.
|
static void |
BranchProfileCarrier.setBranchProfile(Instruction i,
BranchProfileOperand op)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
BooleanCmp.setBranchProfile(Instruction i,
BranchProfileOperand BranchProfile)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
InlineGuard.setBranchProfile(Instruction i,
BranchProfileOperand BranchProfile)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
IfCmp.setBranchProfile(Instruction i,
BranchProfileOperand BranchProfile)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
LowTableSwitch.setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
TableSwitch.setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
LookupSwitch.setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
IfCmp2.setBranchProfile1(Instruction i,
BranchProfileOperand BranchProfile1)
Set the operand called BranchProfile1 in the argument
instruction to the argument operand.
|
static void |
IfCmp2.setBranchProfile2(Instruction i,
BranchProfileOperand BranchProfile2)
Set the operand called BranchProfile2 in the argument
instruction to the argument operand.
|
static void |
TableSwitch.setDefaultBranchProfile(Instruction i,
BranchProfileOperand DefaultBranchProfile)
Set the operand called DefaultBranchProfile in the argument
instruction to the argument operand.
|
static void |
LookupSwitch.setDefaultBranchProfile(Instruction i,
BranchProfileOperand DefaultBranchProfile)
Set the operand called DefaultBranchProfile in the argument
instruction to the argument operand.
|
Modifier and Type | Method and Description |
---|---|
static BranchProfileOperand |
MIR_CondBranch.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
MIR_LowTableSwitch.getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch2.getBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch2.getBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_LowTableSwitch.getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_CondBranch2.getClearBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_CondBranch2.getClearBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the argument
instruction clearing its instruction pointer.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
MIR_CondBranch.create(Operator o,
IA32ConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Create an instruction of the MIR_CondBranch instruction format.
|
static Instruction |
MIR_CondBranch2.create(Operator o,
IA32ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.
|
static Instruction |
MIR_CondBranch2.create(Operator o,
IA32ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.
|
static Instruction |
MIR_CondBranch.create(Operator o,
IA32ConditionOperand Cond,
BranchProfileOperand BranchProfile)
Create an instruction of the MIR_CondBranch instruction format.
|
static Instruction |
MIR_CondBranch2.create(Operator o,
IA32ConditionOperand Cond1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.
|
static Instruction |
MIR_CondBranch2.create(Operator o,
IA32ConditionOperand Cond1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.
|
static Instruction |
MIR_CondBranch.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
MIR_CondBranch instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch2.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
MIR_CondBranch2 instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch2.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
MIR_CondBranch2 instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
MIR_CondBranch instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch2.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
MIR_CondBranch2 instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch2.mutate(Instruction i,
Operator o,
IA32ConditionOperand Cond1,
BranchProfileOperand BranchProfile1,
IA32ConditionOperand Cond2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
MIR_CondBranch2 instruction format having the specified
operator and operands.
|
static void |
MIR_CondBranch.setBranchProfile(Instruction i,
BranchProfileOperand BranchProfile)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
MIR_LowTableSwitch.setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
MIR_CondBranch2.setBranchProfile1(Instruction i,
BranchProfileOperand BranchProfile1)
Set the operand called BranchProfile1 in the argument
instruction to the argument operand.
|
static void |
MIR_CondBranch2.setBranchProfile2(Instruction i,
BranchProfileOperand BranchProfile2)
Set the operand called BranchProfile2 in the argument
instruction to the argument operand.
|
Modifier and Type | Method and Description |
---|---|
static BranchProfileOperand |
BranchProfileOperand.always() |
BranchProfileOperand |
BranchProfileOperand.flip()
Flip the probability (p = 1 - p)
|
static BranchProfileOperand |
BranchProfileOperand.likely() |
static BranchProfileOperand |
BranchProfileOperand.never() |
static BranchProfileOperand |
BranchProfileOperand.unlikely() |
Modifier and Type | Method and Description |
---|---|
static BranchProfileOperand |
MIR_CondBranch.getBranchProfile(Instruction i)
Get the operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
MIR_LowTableSwitch.getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch2.getBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch2.getBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the
argument instruction.
|
static BranchProfileOperand |
MIR_CondBranch.getClearBranchProfile(Instruction i)
Get the operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_LowTableSwitch.getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_CondBranch2.getClearBranchProfile1(Instruction i)
Get the operand called BranchProfile1 from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
MIR_CondBranch2.getClearBranchProfile2(Instruction i)
Get the operand called BranchProfile2 from the argument
instruction clearing its instruction pointer.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
MIR_CondBranch.create(Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Create an instruction of the MIR_CondBranch instruction format.
|
static Instruction |
MIR_CondBranch2.create(Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.
|
static Instruction |
MIR_CondBranch.create(Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond,
BranchProfileOperand BranchProfile)
Create an instruction of the MIR_CondBranch instruction format.
|
static Instruction |
MIR_CondBranch.mutate(Instruction i,
Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond,
BranchOperand Target,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
MIR_CondBranch instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch2.mutate(Instruction i,
Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond1,
BranchOperand Target1,
BranchProfileOperand BranchProfile1,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond2,
BranchOperand Target2,
BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the
MIR_CondBranch2 instruction format having the specified
operator and operands.
|
static Instruction |
MIR_CondBranch.mutate(Instruction i,
Operator o,
RegisterOperand Value,
org.jikesrvm.compilers.opt.ir.operand.ppc.PowerPCConditionOperand Cond,
BranchProfileOperand BranchProfile)
Mutate the argument instruction into an instruction of the
MIR_CondBranch instruction format having the specified
operator and operands.
|
static void |
MIR_CondBranch.setBranchProfile(Instruction i,
BranchProfileOperand BranchProfile)
Set the operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
MIR_LowTableSwitch.setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
MIR_CondBranch2.setBranchProfile1(Instruction i,
BranchProfileOperand BranchProfile1)
Set the operand called BranchProfile1 in the argument
instruction to the argument operand.
|
static void |
MIR_CondBranch2.setBranchProfile2(Instruction i,
BranchProfileOperand BranchProfile2)
Set the operand called BranchProfile2 in the argument
instruction to the argument operand.
|
Modifier and Type | Method and Description |
---|---|
protected void |
BURS_Helpers.ATTEMPT_IFCMP(MemoryOperand mo,
Operand oldValue,
Operand newValue,
ConditionOperand cond,
BranchOperand target,
BranchProfileOperand bp)
This routine expands the compound pattern IFCMP(ATTEMPT, ZERO) into an
atomic compare/exchange followed by a branch on success/failure of the
attempted atomic compare/exchange.
|