public class LocalVariableInfo extends MutabilityControl
SsaMethod.
Stolen from LocalVariableInfo.| Constructor and Description |
|---|
LocalVariableInfo(SsaMethod method)
Constructs an instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAssignment(SsaInsn insn,
RegisterSpec spec)
Adds an assignment association for the given instruction and
register spec.
|
void |
debugDump() |
RegisterSpec |
getAssignment(SsaInsn insn)
Gets the named register being assigned by the given instruction, if
previously stored in this instance.
|
int |
getAssignmentCount()
Gets the number of assignments recorded by this instance.
|
RegisterSpecSet |
getStarts(int index)
Gets the register set associated with the start of the block
with the given index.
|
RegisterSpecSet |
getStarts(SsaBasicBlock block)
Gets the register set associated with the start of the given
block.
|
boolean |
mergeStarts(int index,
RegisterSpecSet specs)
Merges the given register set into the set for the block with the
given index.
|
RegisterSpecSet |
mutableCopyOfStarts(int index)
Gets a mutable copy of the register set associated with the
start of the block with the given index.
|
void |
setStarts(int index,
RegisterSpecSet specs)
Sets the register set associated with the start of the block with
the given index.
|
isImmutable, isMutable, setImmutable, throwIfImmutable, throwIfMutablepublic LocalVariableInfo(SsaMethod method)
method - non-null; the method being represented by this instancepublic void setStarts(int index,
RegisterSpecSet specs)
index - >= 0; the block indexspecs - non-null; the register set to associate with the blockpublic boolean mergeStarts(int index,
RegisterSpecSet specs)
setStarts(int, com.android.dx.rop.code.RegisterSpecSet). Otherwise, this will
merge the two sets and call setStarts(int, com.android.dx.rop.code.RegisterSpecSet) on the result of the
merge.index - >= 0; the block indexspecs - non-null; the register set to merge into the start set
for the blocktrue 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 changepublic RegisterSpecSet getStarts(int index)
index - >= 0; the block indexnon-null; the associated register setpublic RegisterSpecSet getStarts(SsaBasicBlock block)
getStarts(block.getLabel()).block - non-null; the block in questionnon-null; the associated register setpublic RegisterSpecSet mutableCopyOfStarts(int index)
RegisterSpecSet of appropriate
max size if there is not yet any set associated with the block.index - >= 0; the block indexnon-null; the associated register setpublic void addAssignment(SsaInsn insn, RegisterSpec spec)
TypeBearer (such as a constant value).insn - non-null; the instruction in questionspec - non-null; the associated register specpublic RegisterSpec getAssignment(SsaInsn insn)
insn - non-null; instruction in questionnull-ok; the named register being assigned, if anypublic int getAssignmentCount()
>= 0; the number of assignmentspublic void debugDump()
Copyright © 2020. All Rights Reserved.