Class ShrikeIndirectionData
java.lang.Object
com.ibm.wala.ssa.ShrikeIndirectionData
- All Implemented Interfaces:
SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
public class ShrikeIndirectionData
extends Object
implements SSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
An implementation of
SSAIndirectionData
specialized for IRs originated from Shrike.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
In Shrike, the only "source" level entities which have names relevant to indirect pointer operations are bytecode locals.Nested classes/interfaces inherited from interface com.ibm.wala.ssa.SSAIndirectionData
SSAIndirectionData.Name
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
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.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) toString()
-
Constructor Details
-
ShrikeIndirectionData
public ShrikeIndirectionData(int instructionArrayLength)
-
-
Method Details
-
getDef
Description copied from interface:SSAIndirectionData
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.For example, in Example B in header comment above, suppose v2 referred to a "source"-entity called "Local1". Since instruction (1) (call to bar) defs "Local1", we introduce in this table a new SSA value number, say v7, which represents the value of "Local1" immediately after this instruction.
- Specified by:
getDef
in interfaceSSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
-
getUse
Description copied from interface:SSAIndirectionData
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.For example, in Example A in header comment above, suppose v1 referred to a "source"-entity called "Local1". Since instruction (1) (LoadIndirect) uses "Local1", we record in this table the SSA value number that represents "Local1" immediately before instruction (1). So if v1 and v7 both refer to "Local1", then (1) uses v7. If v7 does NOT refer to "Local1", then (1) uses v1.
- Specified by:
getUse
in interfaceSSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
-
setDef
Description copied from interface:SSAIndirectionData
Record the fact that a particular instruction defs a particular SSA value number (newDef), representing the value of a "source" entity "name".- Specified by:
setDef
in interfaceSSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
- See Also:
-
setUse
- Specified by:
setUse
in interfaceSSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
- See Also:
-
getNames
Description copied from interface:SSAIndirectionData
Returns the set of "source" level names (e.g. local variables in bytecode or source code) for which this map holds information.- Specified by:
getNames
in interfaceSSAIndirectionData<ShrikeIndirectionData.ShrikeLocalName>
-
toString
-