public class ShrikeIndirectionData extends Object implements SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
SSAIndirectionData
specialized for IRs originated from Shrike.Modifier and Type | Class and Description |
---|---|
static class |
ShrikeIndirectionData.ShrikeLocalName
In Shrike, the only "source" level entities which have names relevant to indirect pointer operations are bytecode locals.
|
SSAIndirectionData.Name
Constructor and Description |
---|
ShrikeIndirectionData(int instructionArrayLength) |
Modifier and Type | Method and Description |
---|---|
int |
getDef(int instructionIndex,
ShrikeIndirectionData.ShrikeLocalName name)
For the instruction at the given index, and a source-level name, return the SSA value number which represents this
instruction's def of that name.
|
Collection<ShrikeIndirectionData.ShrikeLocalName> |
getNames()
Returns the set of "source" level names (e.g.
|
int |
getUse(int instructionIndex,
ShrikeIndirectionData.ShrikeLocalName name)
For the instruction at the given index, and a source-level name, return the SSA value number which represents this
instruction's use of that name.
|
void |
setDef(int instructionIndex,
ShrikeIndirectionData.ShrikeLocalName name,
int newDef)
Record the fact that a particular instruction defs a particular SSA value number (newDef), representing the value of a "source" entity
"name".
|
void |
setUse(int instructionIndex,
ShrikeIndirectionData.ShrikeLocalName name,
int newUse) |
String |
toString() |
public int getDef(int instructionIndex, ShrikeIndirectionData.ShrikeLocalName name)
SSAIndirectionData
getDef
in interface SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
public int getUse(int instructionIndex, ShrikeIndirectionData.ShrikeLocalName name)
SSAIndirectionData
getUse
in interface SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
public void setDef(int instructionIndex, ShrikeIndirectionData.ShrikeLocalName name, int newDef)
SSAIndirectionData
setDef
in interface SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
SSAIndirectionData.getDef(int, T)
public void setUse(int instructionIndex, ShrikeIndirectionData.ShrikeLocalName name, int newUse)
setUse
in interface SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
SSAIndirectionData.getUse(int, T)
public Collection<ShrikeIndirectionData.ShrikeLocalName> getNames()
SSAIndirectionData
getNames
in interface SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>