| Modifier and Type | Class and Description |
|---|---|
| public static interface | SsaInsn.
Visitor interface for this class. |
| Modifier and Type | Field and Description |
|---|---|
| private final SsaBasicBlock | block
|
| private RegisterSpec | result
|
| Access | Constructor and Description |
|---|---|
| protected | SsaInsn(RegisterSpec
null-ok; initial result register. May be changed.non-null; block containing this insn. Can
never change.Constructs an instance. |
| Modifier and Type | Method and Description |
|---|---|
| public abstract void | |
| public abstract boolean | |
| public void | |
| public SsaInsn | |
| public SsaBasicBlock | |
| public RegisterSpec | Returns: null-ok; a local-associated register spec or nullGets the spec of a local variable assignment that occurs at this instruction, or null if no local variable assignment occurs. |
| public abstract Rop | Returns: null-ok; Rop opcode if there is one.Returns the Rop opcode for this insn, or null if this is a phi insn. |
| public abstract Insn | Returns: null-ok; Rop insn if there is one.Returns the original Rop insn for this insn, or null if this is a phi insn. |
| public RegisterSpec | |
| public abstract RegisterSpecList | |
| public abstract boolean | Returns: true if this insn is considered to have a side effect beyond that of assigning to the result reg.Returns true if this insn is considered to have a side effect beyond that of assigning to the result reg. |
| public boolean | Returns: true if this is a move-exception instruction. These instructions must immediately follow a preceeding invoke*
|
| public boolean | Returns: true if this is a move (but not a move-operand or move-exception) instruction
|
| public abstract boolean | |
| public boolean | Returns: true if the reg is a sourcethe register in question reg)Indicates whether the specified register is amongst the registers used as sources for this instruction. |
| public boolean | Returns: true if there is a result and it is stored in the specified registerregister to test reg)Returns whether or not the specified reg is the result reg. |
| public static SsaInsn | Returns: non-null; an appropriately constructed instancenon-null; rop insnnon-null; owning blockMakes a new SSA insn form a rop insn. |
| public final void | mapRegisters(RegisterMapper
non-null; mapping from old to new registersMap registers after register allocation. |
| public abstract void | |
| protected void | |
| public final void | setResultLocal(LocalItem
null-ok; new debug/local variable infoSets the local association for the result of this insn. |
| public abstract Insn | Returns: non-null; a ROP representation of this instruction, with
updated registers.Transform back to ROP form. |
| block | back to summary |
|---|---|
| private final SsaBasicBlock block
| |
| result | back to summary |
|---|---|
| private RegisterSpec result
| |
| SsaInsn | back to summary |
|---|---|
| protected SsaInsn(RegisterSpec result, SsaBasicBlock block) Constructs an instance.
| |
| accept | back to summary |
|---|---|
| public abstract void accept(SsaInsn. Accepts a visitor. | |
| canThrow | back to summary |
|---|---|
public abstract boolean canThrow()
| |
| changeResultReg | back to summary |
|---|---|
| public void changeResultReg(int reg) Changes the result register if this insn has a result. This is used during renaming.
| |
| clone | back to summary |
|---|---|
| public SsaInsn clone() Overrides java. Doc from java. Creates and returns a copy of this object. The precise meaning
of "copy" may depend on the class of the object. The general
intent is that, for any object will be true, and that the expression:x.clone() != x will bex.clone().getClass() == x.getClass() true, but these are not absolute requirements.
While it is typically the case that:
will bex.clone().equals(x) true, this is not an absolute requirement.
By convention, the returned object should be obtained by calling
By convention, the object returned by this method should be independent
of this object (which is being cloned). To achieve this independence,
it may be necessary to modify one or more fields of the object returned
by | |
| getBlock | back to summary |
|---|---|
| public SsaBasicBlock getBlock() Gets the block to which this insn instance belongs.
| |
| getLocalAssignment | back to summary |
|---|---|
| public RegisterSpec getLocalAssignment() Gets the spec of a local variable assignment that occurs at this
instruction, or null if no local variable assignment occurs. This
may be the result register, or for
| |
| getOpcode | back to summary |
|---|---|
| public abstract Rop getOpcode() Returns the Rop opcode for this insn, or null if this is a phi insn. Todo Move this up into NormalSsaInsn.
| |
| getOriginalRopInsn | back to summary |
|---|---|
| public abstract Insn getOriginalRopInsn() Returns the original Rop insn for this insn, or null if this is a phi insn. Todo Move this up into NormalSsaInsn.
| |
| getResult | back to summary |
|---|---|
| public RegisterSpec getResult() Like
| |
| getSources | back to summary |
|---|---|
| public abstract RegisterSpecList getSources() Like
| |
| hasSideEffect | back to summary |
|---|---|
| public abstract boolean hasSideEffect() Returns true if this insn is considered to have a side effect beyond that of assigning to the result reg.
| |
| isMoveException | back to summary |
|---|---|
public boolean isMoveException()
| |
| isNormalMoveInsn | back to summary |
|---|---|
public boolean isNormalMoveInsn()
| |
| isPhiOrMove | back to summary |
|---|---|
public abstract boolean isPhiOrMove()
| |
| isRegASource | back to summary |
|---|---|
| public boolean isRegASource(int reg) Indicates whether the specified register is amongst the registers used as sources for this instruction.
| |
| isResultReg | back to summary |
|---|---|
| public boolean isResultReg(int reg) Returns whether or not the specified reg is the result reg.
| |
| makeFromRop | back to summary |
|---|---|
| public static SsaInsn makeFromRop(Insn insn, SsaBasicBlock block) Makes a new SSA insn form a rop insn.
| |
| mapRegisters | back to summary |
|---|---|
| public final void mapRegisters(RegisterMapper mapper) Map registers after register allocation.
| |
| mapSourceRegisters | back to summary |
|---|---|
| public abstract void mapSourceRegisters(RegisterMapper mapper) Maps only source registers.
| |
| setResult | back to summary |
|---|---|
| protected void setResult(RegisterSpec result) Set the result register.
| |
| setResultLocal | back to summary |
|---|---|
| public final void setResultLocal(LocalItem local) Sets the local association for the result of this insn. This is sometimes updated during the SsaRenamer process.
| |
| toRopInsn | back to summary |
|---|---|
| public abstract Insn toRopInsn() Transform back to ROP form. Todo Move this up into NormalSsaInsn.
| |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public void | visitNonMoveInsn(NormalSsaInsn
non-null; the instruction to visitAny insn that isn't a move or a phi (which is also a move). |
| public void |
| visitMoveInsn | back to summary |
|---|---|
| public void visitMoveInsn(NormalSsaInsn insn) Any non-phi move instruction
| |
| visitNonMoveInsn | back to summary |
|---|---|
| public void visitNonMoveInsn(NormalSsaInsn insn) Any insn that isn't a move or a phi (which is also a move).
| |
| visitPhiInsn | back to summary |
|---|---|
| public void visitPhiInsn(PhiInsn insn) Any phi insn
| |