Package com.ibm.wala.ssa
package com.ibm.wala.ssa
-
ClassDescriptionA policy, that adds pi nodes for all variables, that are used in a branch instruction.A cache for auxiliary information based on an SSA representationA Combination of 2
SSAPiNodePolicy
s.The value of a constant which appears in an SSA IR.Default implementation ofIRFactory
.An object which represent Def-Use information for an SSAIR
A pi node policy with the following rule:An SSA IR.A Map that gives the names of the local variables corresponding to SSA value numbers at particular IR instruction indices, if such information is available from source code mapping.This is intended as an internal interface; clients probably shouldn't be using this directly.Common interface to all SSA BasicBlocksA pi node policy with the following rule:A value generated by a phi instruction.TODO: document me.An implementation ofSSAIndirectionData
specialized for IRs originated from Shrike.In Shrike, the only "source" level entities which have names relevant to indirect pointer operations are bytecode locals.A Call instruction.An instruction which unconditionally throws an exceptionAnSSAAddressOfInstruction
represents storing the address of some "source" level entity (@seeSSAIndirectionData.Name
) into an SSA value number.SSA instruction representing v_x := arraylength v_ySSA instruction representing an array load.Abstract base class for instructions that load or store from array contents.SSA instruction representing an array store.This class constructs an SSAIR
from a backing ShrikeBT instruction stream.A mapping from IMethod -> SSAOptions -> SoftReference -> SomethingA control-flow graph for ssa form.A checkcast (dynamic type test) instruction.SSA Instruction for comparisons between floats, longs and doublesA conditional branch instruction, which tests two values according to someIConditionalBranchInstruction.IOperator
.An instruction which converts a value of one primitive type into another primitive type.Abstract base class forSSAGetInstruction
andSSAPutInstruction
.A "catch" instruction, inserted at the head of a catch block, which assigns a pending exception object to a local variable.SSA instruction that reads a field (i.e.Unconditional branch instruction for SSA form.SSAIndirectionData<T extends SSAIndirectionData.Name>A mapping that tells, for a given instruction s, what "names" does s def and use indirectly.A Name is a mock interface introduced just for strong typing.A dynamic type test (instanceof) instruction.An instruction in SSA form.This interface is used by Instruction.visit to dispatch based on the instruction type.A base visitor implementation that does nothing.An instruction factory for SSA.Used for representing the JVML invokedynamic instruction.A load from a pointer.An instruction that represents a reflective or meta-programming operation, like loadClass in JavaAn instruction representing a monitorenter or monitorexit operation.An allocation instruction ("new") for SSA form.Options that govern SSA constructionWhile SSA form makes the not-unreasonable assumption that values must be defined before they are used, many languages permit using undefined variables and simply give them some default value.A phi instruction in SSA form.A Pi instruction is a dummy assignment inserted at the tail of a basic block, in order to get a new variable name to associate with some flow-insensitive dataflow fact.TheSSABuilder
consults this as an oracle to decide how to insertSSAPiInstruction
sA putfield or putstatic instructionA return instruction.A store from a pointer.SSA instruction representing a switch statement.An instruction which unconditionally throws an exceptionAn SSA instruction for some unary operator.A symbol table which associates information with each variable (value number) in an SSA IR.Representation of a particular value which appears in an SSA IR.