org.droidparts.dexmaker.dx.ssa.SsaMethod .
Stolen from org.droidparts.dexmaker.dx.rop.code.LocalVariableInfo .
| Modifier and Type | Field and Description |
|---|---|
| private final RegisterSpecSet[] | blockStarts
|
| private final RegisterSpecSet | emptySet
|
| private final HashMap | insnAssignments
|
| private final int | regCount
|
| Access | Constructor and Description |
|---|---|
| public | LocalVariableInfo(SsaMethod
non-null; the method being represented by this instanceConstructs an instance. |
| Modifier and Type | Method and Description |
|---|---|
| public void | addAssignment(SsaInsn
non-null; the instruction in questionnon-null; the associated register specAdds an assignment association for the given instruction and register spec. |
| public void | |
| public RegisterSpec | Returns: null-ok; the named register being assigned, if anynon-null; instruction in questionGets the named register being assigned by the given instruction, if previously stored in this instance. |
| public int | Returns: >= 0; the number of assignmentsGets the number of assignments recorded by this instance. |
| public RegisterSpecSet | Returns: non-null; the associated register set>= 0; the block indexGets the register set associated with the start of the block with the given index. |
| public RegisterSpecSet | Returns: non-null; the associated register setnon-null; the block in questionGets the register set associated with the start of the given block. |
| private RegisterSpecSet | Returns: null-ok; associated register set or null if there
is none>= 0; the block indexHelper method, to get the starts for a index, throwing the right exception for range problems. |
| public boolean | Returns: true if the merge resulted in an actual change
to the associated set (including storing one for the first time) or
false if there was no change>= 0; the block indexnon-null; the register set to merge into the start set
for the blockMerges the given register set into the set for the block with the given index. |
| public RegisterSpecSet | Returns: non-null; the associated register set>= 0; the block indexGets a mutable copy of the register set associated with the start of the block with the given index. |
| public void | setStarts(int
>= 0; the block indexnon-null; the register set to associate with the blockSets the register set associated with the start of the block with the given index. |
| blockStarts | back to summary |
|---|---|
| private final RegisterSpecSet[] blockStarts
| |
| emptySet | back to summary |
|---|---|
| private final RegisterSpecSet emptySet
| |
| insnAssignments | back to summary |
|---|---|
| private final HashMap<SsaInsn, RegisterSpec> insnAssignments
| |
| regCount | back to summary |
|---|---|
| private final int regCount
| |
| LocalVariableInfo | back to summary |
|---|---|
| public LocalVariableInfo(SsaMethod method) Constructs an instance.
| |
| addAssignment | back to summary |
|---|---|
| public void addAssignment(SsaInsn insn, RegisterSpec spec) Adds an assignment association for the given instruction and register spec. This throws an exception if the instruction doesn't actually perform a named variable assignment Note Although the instruction contains its own spec for
the result, it still needs to be passed in explicitly to this
method, since the spec that is stored here should always have a
simple type and the one in the instruction can be an arbitrary
| |
| debugDump | back to summary |
|---|---|
| public void debugDump() | |
| getAssignment | back to summary |
|---|---|
| public RegisterSpec getAssignment(SsaInsn insn) Gets the named register being assigned by the given instruction, if previously stored in this instance.
| |
| getAssignmentCount | back to summary |
|---|---|
| public int getAssignmentCount() Gets the number of assignments recorded by this instance.
| |
| getStarts | back to summary |
|---|---|
| public RegisterSpecSet getStarts(int index) Gets the register set associated with the start of the block with the given index. This returns an empty set with the appropriate max size if no set was associated with the block in question.
| |
| getStarts | back to summary |
|---|---|
| public RegisterSpecSet getStarts(SsaBasicBlock block) Gets the register set associated with the start of the given
block. This is just convenient shorthand for
| |
| getStarts0 | back to summary |
|---|---|
| private RegisterSpecSet getStarts0(int index) Helper method, to get the starts for a index, throwing the right exception for range problems.
| |
| mergeStarts | back to summary |
|---|---|
| public boolean mergeStarts(int index, RegisterSpecSet specs) Merges the given register set into the set for the block with the
given index. If there was not already an associated set, then this
is the same as calling
| |
| mutableCopyOfStarts | back to summary |
|---|---|
| public RegisterSpecSet mutableCopyOfStarts(int index) Gets a mutable copy of the register set associated with the
start of the block with the given index. This returns a
newly-allocated empty
| |
| setStarts | back to summary |
|---|---|
| public void setStarts(int index, RegisterSpecSet specs) Sets the register set associated with the start of the block with the given index.
| |