object TACAI
Factory to convert the bytecode of a method into a three address representation using the results of a(n) (local) abstract interpretation of the method.
The generated representation is completely parameterized over the domains that were used to perform the abstract interpretation. The only requirement is that the Def/Use information is recorded while performing the abstract interpretation (see org.opalj.ai.domain.RecordDefUse).
The generated representation is necessarily in static single assignment form: each variable is assigned exactly once, and every variable is defined before it is used. However, no PHI instructions are inserted; instead - in case of a use - we simply directly refer to all def sites.
- Source
- TACAI.scala
- Alphabetic
- By Inheritance
- TACAI
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply(method: Method, classHierarchy: ClassHierarchy, aiResult: AIResult { val domain: org.opalj.ai.Domain with org.opalj.ai.domain.RecordDefUse }, propagateConstants: Boolean)(optimizations: List[TACOptimization[TACMethodParameter, DUVar[((aiResult)#domain)#DomainValue], AITACode[TACMethodParameter, ((aiResult)#domain)#DomainValue]]]): AITACode[TACMethodParameter, ((aiResult)#domain)#DomainValue]
Converts the bytecode of a method into a three address representation using the result of an abstract interpretation.
Converts the bytecode of a method into a three address representation using the result of an abstract interpretation.
- method
A method with a body. I.e., a non-native, non-abstract method.
- aiResult
The result of the abstract interpretation of the respective method.
- optimizations
The transformations that should be executed (NoOptimizations is always possible).
- returns
The array with the generated statements.
- def apply(project: SomeProject, method: Method, aiResult: AIResult { val domain: org.opalj.ai.Domain with org.opalj.ai.domain.RecordDefUse }): AITACode[TACMethodParameter, ((aiResult)#domain)#DomainValue]
- def apply(project: SomeProject, method: Method)(domain: Domain with RecordDefUse = new DefaultDomainWithCFGAndDefUse(project, method)): AITACode[TACMethodParameter, (domain)#DomainValue]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def normalizeParameterOriginsMap(descriptor: MethodDescriptor, isStatic: Boolean): Array[Int]
Returns a map which maps an ai-based value origin for a parameter to the tac value origin; to lookup the tac based origin, the ai-based origin aiVO has to be negated and 1 has to be subtracted.
Returns a map which maps an ai-based value origin for a parameter to the tac value origin; to lookup the tac based origin, the ai-based origin aiVO has to be negated and 1 has to be subtracted.
- returns
An implicit map (keys are aiVOKey =
-aiVo-1
) fromaiVO
totacVo
.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated