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.ir | |
org.jikesrvm.compilers.opt.ir.ia32 | |
org.jikesrvm.compilers.opt.ir.operand | |
org.jikesrvm.compilers.opt.ir.ppc | |
org.jikesrvm.compilers.opt.ssa |
SSA implementation (disabled because of bugs, see entry in issue tracker).
|
Modifier and Type | Method and Description |
---|---|
private Instruction |
BC2IR._callHelper(MethodReference meth,
MethodOperand methOp)
Pop method parameters off the expression stack.
|
Modifier and Type | Method and Description |
---|---|
static MethodOperand |
Call.getClearMethod(Instruction i)
Get the operand called Method from the argument
instruction clearing its instruction pointer.
|
static MethodOperand |
Call.getMethod(Instruction i)
Get the operand called Method from the
argument instruction.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
Call.create(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
int numVarOps)
Create an instruction of the Call instruction format.
|
static Instruction |
Call.create(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
int numVarOps)
Create an instruction of the Call instruction format.
|
static Instruction |
Call.create0(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method)
Create an instruction of the Call instruction format
with 0 variable arguments.
|
static Instruction |
Call.create0(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard)
Create an instruction of the Call instruction format
with 0 variable arguments.
|
static Instruction |
Call.create1(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1)
Create an instruction of the Call instruction format
with 1 variable arguments.
|
static Instruction |
Call.create1(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1)
Create an instruction of the Call instruction format
with 1 variable arguments.
|
static Instruction |
Call.create2(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2)
Create an instruction of the Call instruction format
with 2 variable arguments.
|
static Instruction |
Call.create2(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2)
Create an instruction of the Call instruction format
with 2 variable arguments.
|
static Instruction |
Call.create3(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3)
Create an instruction of the Call instruction format
with 3 variable arguments.
|
static Instruction |
Call.create3(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3)
Create an instruction of the Call instruction format
with 3 variable arguments.
|
static Instruction |
Call.create4(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4)
Create an instruction of the Call instruction format
with 4 variable arguments.
|
static Instruction |
Call.create4(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4)
Create an instruction of the Call instruction format
with 4 variable arguments.
|
static Instruction |
Call.create5(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5)
Create an instruction of the Call instruction format
with 5 variable arguments.
|
static Instruction |
Call.create5(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5)
Create an instruction of the Call instruction format
with 5 variable arguments.
|
static Instruction |
Call.create6(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6)
Create an instruction of the Call instruction format
with 6 variable arguments.
|
static Instruction |
Call.create6(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6)
Create an instruction of the Call instruction format
with 6 variable arguments.
|
static Instruction |
Call.create7(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7)
Create an instruction of the Call instruction format
with 7 variable arguments.
|
static Instruction |
Call.create7(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7)
Create an instruction of the Call instruction format
with 7 variable arguments.
|
static Instruction |
Call.create8(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7,
Operand Param_8)
Create an instruction of the Call instruction format
with 8 variable arguments.
|
static Instruction |
Call.create8(Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7,
Operand Param_8)
Create an instruction of the Call instruction format
with 8 variable arguments.
|
static Instruction |
Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
int numVarOps)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator and operands.
|
static Instruction |
Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
int numVarOps)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator and operands.
|
static Instruction |
Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate1(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate1(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate2(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate2(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate3(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate3(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate4(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate4(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate5(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate5(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate6(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate6(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate7(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate7(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate8(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7,
Operand Param_8)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
Call.mutate8(Instruction i,
Operator o,
RegisterOperand Result,
Operand Address,
MethodOperand Method,
Operand Guard,
Operand Param_1,
Operand Param_2,
Operand Param_3,
Operand Param_4,
Operand Param_5,
Operand Param_6,
Operand Param_7,
Operand Param_8)
Mutate the argument instruction into an instruction of the
Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static void |
Call.setMethod(Instruction i,
MethodOperand Method)
Set the operand called Method in the argument
instruction to the argument operand.
|
Modifier and Type | Method and Description |
---|---|
static MethodOperand |
MIR_Call.getClearMethod(Instruction i)
Get the operand called Method from the argument
instruction clearing its instruction pointer.
|
static MethodOperand |
MIR_Call.getMethod(Instruction i)
Get the operand called Method from the
argument instruction.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
MIR_Call.create(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
int numVarOps)
Create an instruction of the MIR_Call instruction format.
|
static Instruction |
MIR_Call.create(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method,
int numVarOps)
Create an instruction of the MIR_Call instruction format.
|
static Instruction |
MIR_Call.create0(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method)
Create an instruction of the MIR_Call instruction format
with 0 variable arguments.
|
static Instruction |
MIR_Call.create0(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method)
Create an instruction of the MIR_Call instruction format
with 0 variable arguments.
|
static Instruction |
MIR_Call.create1(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
Operand Param_1)
Create an instruction of the MIR_Call instruction format
with 1 variable arguments.
|
static Instruction |
MIR_Call.create1(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method,
Operand Param_1)
Create an instruction of the MIR_Call instruction format
with 1 variable arguments.
|
static Instruction |
MIR_Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
int numVarOps)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator and operands.
|
static Instruction |
MIR_Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method,
int numVarOps)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator and operands.
|
static Instruction |
MIR_Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
MIR_Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
MIR_Call.mutate1(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
Operand Param_1)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
MIR_Call.mutate1(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
Operand Target,
MethodOperand Method,
Operand Param_1)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static void |
MIR_Call.setMethod(Instruction i,
MethodOperand Method)
Set the operand called Method in the argument
instruction to the argument operand.
|
Modifier and Type | Field and Description |
---|---|
(package private) MethodOperand |
LocationOperand.methOp
Method operand that corresponds to this location;
null if this is not a method access. |
Modifier and Type | Method and Description |
---|---|
MethodOperand |
Operand.asMethod()
Cast to an
MethodOperand . |
static MethodOperand |
MethodOperand.COMPILED(RVMMethod callee,
Offset offset)
Returns a method operand representing a compiled method with designated
JTOC offset.
|
static MethodOperand |
MethodOperand.INTERFACE(MethodReference ref,
RVMMethod target)
create a method operand for an INVOKE_INTERFACE bytecode
|
static MethodOperand |
MethodOperand.SPECIAL(MethodReference ref,
RVMMethod target)
create a method operand for an INVOKE_SPECIAL bytecode
|
static MethodOperand |
MethodOperand.STATIC(MethodReference ref,
RVMMethod target)
create a method operand for an INVOKE_STATIC bytecode
|
static MethodOperand |
MethodOperand.STATIC(RVMField target)
create a method operand for an INVOKE_STATIC bytecode
where the target method is known at compile time.
|
static MethodOperand |
MethodOperand.STATIC(RVMMethod target)
create a method operand for an INVOKE_STATIC bytecode
where the target method is known at compile time.
|
static MethodOperand |
MethodOperand.VIRTUAL(MethodReference ref,
RVMMethod target)
create a method operand for an INVOKE_VIRTUAL bytecode
|
Constructor and Description |
---|
LocationOperand(MethodOperand m)
Constructs a new location operand with the given method
|
Modifier and Type | Method and Description |
---|---|
static MethodOperand |
MIR_Call.getClearMethod(Instruction i)
Get the operand called Method from the argument
instruction clearing its instruction pointer.
|
static MethodOperand |
MIR_Call.getMethod(Instruction i)
Get the operand called Method from the
argument instruction.
|
Modifier and Type | Method and Description |
---|---|
static Instruction |
MIR_Call.create(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
BranchOperand Target,
MethodOperand Method,
int numVarOps)
Create an instruction of the MIR_Call instruction format.
|
static Instruction |
MIR_Call.create(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
int numVarOps)
Create an instruction of the MIR_Call instruction format.
|
static Instruction |
MIR_Call.create0(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
BranchOperand Target,
MethodOperand Method)
Create an instruction of the MIR_Call instruction format
with 0 variable arguments.
|
static Instruction |
MIR_Call.create0(Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method)
Create an instruction of the MIR_Call instruction format
with 0 variable arguments.
|
static Instruction |
MIR_Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
BranchOperand Target,
MethodOperand Method,
int numVarOps)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator and operands.
|
static Instruction |
MIR_Call.mutate(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method,
int numVarOps)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator and operands.
|
static Instruction |
MIR_Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
BranchOperand Target,
MethodOperand Method)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static Instruction |
MIR_Call.mutate0(Instruction i,
Operator o,
RegisterOperand Result,
RegisterOperand Result2,
MethodOperand Method)
Mutate the argument instruction into an instruction of the
MIR_Call instruction format having the specified
operator, operands, and number of variable-length operands.
|
static void |
MIR_Call.setMethod(Instruction i,
MethodOperand Method)
Set the operand called Method in the argument
instruction to the argument operand.
|
Modifier and Type | Method and Description |
---|---|
private ValueGraphVertex |
ValueGraph.findOrCreateVertex(MethodOperand op)
Find or create an ValueGraphVertex corresponding to a
given method operand
|