abstract class IDESolver[D, L <: Lattice] extends FlowSensitiveAnalysis with IDEAnalysis[D, L]
(A variant of) the IDE analysis algorithm.
- Alphabetic
- By Inheritance
- IDESolver
- IDEAnalysis
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new IDESolver(cfg: InterproceduralProgramCfg)(implicit declData: DeclarationData)
Type Members
-
type
DL = Either[D, Lambda]
- Definition Classes
- IDEAnalysis
-
class
Phase1 extends WorklistFixpointPropagationFunctions[(CfgNode, Either[D, Lambda], Either[D, Lambda])]
Phase 1 of the IDE algorithm.
Phase 1 of the IDE algorithm. The original version of the algorithm uses summary edges from call nodes to after-call nodes instead of
callJumpCache
andexitJumpCache
. -
class
Phase2 extends FlowSensitiveAnalysis with WorklistFixpointPropagationFunctions[(CfgNode, Either[D, Lambda])]
Phase 2 of the IDE algorithm.
Phase 2 of the IDE algorithm. Performs a forward dataflow analysis using the decomposed lattice and the micro-transformers. The original RHS version of IDE uses jump functions for all nodes, not only at exits, but the analysis result and complexity is the same.
Abstract Value Members
-
abstract
val
edgelattice: EdgeFunctionLattice[valuelattice.type]
The edge lattice.
The edge lattice.
- Definition Classes
- IDEAnalysis
-
abstract
def
edgesCallToAfterCall(call: CfgCallNode, aftercall: CfgAfterCallNode)(d: DL): Map[DL, Element]
Edges for call-to-aftercall.
Edges for call-to-aftercall.
- Definition Classes
- IDEAnalysis
-
abstract
def
edgesCallToEntry(call: CfgCallNode, entry: CfgFunEntryNode)(d: DL): Map[DL, Element]
Edges for call-to-entry.
Edges for call-to-entry.
- Definition Classes
- IDEAnalysis
-
abstract
def
edgesExitToAfterCall(exit: CfgFunExitNode, aftercall: CfgAfterCallNode)(d: DL): Map[DL, Element]
Edges for exit-to-aftercall.
Edges for exit-to-aftercall.
- Definition Classes
- IDEAnalysis
-
abstract
def
edgesOther(n: CfgNode)(d: DL): Map[DL, Element]
Edges for other CFG nodes.
Edges for other CFG nodes.
- Definition Classes
- IDEAnalysis
-
abstract
val
valuelattice: L
The value lattice.
The value lattice.
- Definition Classes
- IDEAnalysis
Concrete 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
analyze(): Map[CfgNode, Map[D, L.Element]]
Performs the analysis and returns the result.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
cfg: InterproceduralProgramCfg
- Definition Classes
- IDESolver → IDEAnalysis
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- 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
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
val
stateAfterNode: Boolean
- Definition Classes
- FlowSensitiveAnalysis
-
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( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated