Package it.unive.lisa.interprocedural
Class ModularWorstCaseAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>>
- java.lang.Object
-
- it.unive.lisa.interprocedural.ModularWorstCaseAnalysis<A>
-
- Type Parameters:
A
- theAbstractState
of the analysis
- All Implemented Interfaces:
it.unive.lisa.interprocedural.InterproceduralAnalysis<A>
public class ModularWorstCaseAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>> extends java.lang.Object implements it.unive.lisa.interprocedural.InterproceduralAnalysis<A>
A worst case modular analysis were all cfg calls are treated as open calls.
-
-
Constructor Summary
Constructors Constructor Description ModularWorstCaseAnalysis()
Builds the interprocedural analysis.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
fixpoint(it.unive.lisa.analysis.AnalysisState<A> entryState, java.lang.Class<? extends it.unive.lisa.util.collections.workset.WorkingSet<it.unive.lisa.program.cfg.statement.Statement>> fixpointWorkingSet, it.unive.lisa.conf.FixpointConfiguration conf)
it.unive.lisa.analysis.AnalysisState<A>
getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.CFGCall call, it.unive.lisa.analysis.AnalysisState<A> entryState, it.unive.lisa.analysis.lattices.ExpressionSet[] parameters, it.unive.lisa.analysis.StatementStore<A> expressions)
it.unive.lisa.analysis.AnalysisState<A>
getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.OpenCall call, it.unive.lisa.analysis.AnalysisState<A> entryState, it.unive.lisa.analysis.lattices.ExpressionSet[] parameters, it.unive.lisa.analysis.StatementStore<A> expressions)
java.util.Collection<it.unive.lisa.analysis.AnalyzedCFG<A>>
getAnalysisResultsOf(it.unive.lisa.program.cfg.CFG cfg)
it.unive.lisa.interprocedural.FixpointResults<A>
getFixpointResults()
void
init(it.unive.lisa.program.Application app, it.unive.lisa.interprocedural.callgraph.CallGraph callgraph, it.unive.lisa.interprocedural.OpenCallPolicy policy)
boolean
needsCallGraph()
it.unive.lisa.program.cfg.statement.call.Call
resolve(it.unive.lisa.program.cfg.statement.call.UnresolvedCall call, java.util.Set<it.unive.lisa.type.Type>[] types, it.unive.lisa.analysis.symbols.SymbolAliasing aliasing)
-
-
-
Method Detail
-
needsCallGraph
public boolean needsCallGraph()
-
fixpoint
public void fixpoint(it.unive.lisa.analysis.AnalysisState<A> entryState, java.lang.Class<? extends it.unive.lisa.util.collections.workset.WorkingSet<it.unive.lisa.program.cfg.statement.Statement>> fixpointWorkingSet, it.unive.lisa.conf.FixpointConfiguration conf) throws it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
-
getAnalysisResultsOf
public java.util.Collection<it.unive.lisa.analysis.AnalyzedCFG<A>> getAnalysisResultsOf(it.unive.lisa.program.cfg.CFG cfg)
-
getAbstractResultOf
public it.unive.lisa.analysis.AnalysisState<A> getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.CFGCall call, it.unive.lisa.analysis.AnalysisState<A> entryState, it.unive.lisa.analysis.lattices.ExpressionSet[] parameters, it.unive.lisa.analysis.StatementStore<A> expressions) throws it.unive.lisa.analysis.SemanticException
-
getAbstractResultOf
public it.unive.lisa.analysis.AnalysisState<A> getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.OpenCall call, it.unive.lisa.analysis.AnalysisState<A> entryState, it.unive.lisa.analysis.lattices.ExpressionSet[] parameters, it.unive.lisa.analysis.StatementStore<A> expressions) throws it.unive.lisa.analysis.SemanticException
-
init
public void init(it.unive.lisa.program.Application app, it.unive.lisa.interprocedural.callgraph.CallGraph callgraph, it.unive.lisa.interprocedural.OpenCallPolicy policy) throws it.unive.lisa.interprocedural.InterproceduralAnalysisException
-
resolve
public it.unive.lisa.program.cfg.statement.call.Call resolve(it.unive.lisa.program.cfg.statement.call.UnresolvedCall call, java.util.Set<it.unive.lisa.type.Type>[] types, it.unive.lisa.analysis.symbols.SymbolAliasing aliasing) throws it.unive.lisa.interprocedural.callgraph.CallResolutionException
-
-