Skip to content

Commit

Permalink
Merge pull request #210 from opalj/fix/schedule-fai-analysis
Browse files Browse the repository at this point in the history
Schedule the required FieldAccessInformationAnalysis in runners
  • Loading branch information
errt authored Sep 9, 2024
2 parents 3a30ae7 + 7a147f0 commit 3a7819d
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import org.opalj.br.fpcf.properties.immutability.NonAssignable
import org.opalj.br.fpcf.properties.immutability.UnsafelyLazilyInitialized
import org.opalj.tac.cg.RTACallGraphKey
import org.opalj.tac.fpcf.analyses.escape.LazySimpleEscapeAnalysis
import org.opalj.tac.fpcf.analyses.fieldaccess.EagerFieldAccessInformationAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.LazyL2FieldAssignabilityAnalysis

/**
Expand All @@ -42,6 +43,7 @@ object FieldAssignabilityRunner extends ProjectAnalysisApplication {
val (ps, _) = project
.get(FPCFAnalysesManagerKey)
.runAll(
EagerFieldAccessInformationAnalysis,
LazyL2FieldAssignabilityAnalysis,
LazyStaticDataUsageAnalysis,
LazyL0CompileTimeConstancyAnalysis,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,8 @@ import org.opalj.tac.cg.CallGraphKey
import org.opalj.tac.cg.XTACallGraphKey
import org.opalj.tac.fpcf.analyses.LazyFieldImmutabilityAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazySimpleEscapeAnalysis
import org.opalj.tac.fpcf.analyses.fieldaccess.EagerFieldAccessInformationAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.LazyL2FieldAssignabilityAnalysis
import org.opalj.tac.fpcf.analyses.purity.L2PurityAnalysis
import org.opalj.tac.fpcf.analyses.purity.SystemOutLoggingAllExceptionRater
import org.opalj.util.PerformanceEvaluation.time
import org.opalj.util.Seconds

Expand Down Expand Up @@ -146,6 +145,7 @@ object Immutability {

val dependencies: List[FPCFAnalysisScheduler] =
List(
EagerFieldAccessInformationAnalysis,
LazyL2FieldAssignabilityAnalysis,
LazyFieldImmutabilityAnalysis,
LazyClassImmutabilityAnalysis,
Expand All @@ -157,8 +157,6 @@ object Immutability {

project.get(callgraphKey)

L2PurityAnalysis.setRater(Some(SystemOutLoggingAllExceptionRater))

project.updateProjectInformationKeyInitializationData(AIDomainFactoryKey) { _ =>
if (level == 0)
Set[Class[_ <: AnyRef]](classOf[domain.l0.BaseDomainWithDefUse[URL]])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import org.opalj.tac.cg.RTACallGraphKey
import org.opalj.tac.fpcf.analyses.LazyFieldLocalityAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyInterProceduralEscapeAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyReturnValueFreshnessAnalysis
import org.opalj.tac.fpcf.analyses.fieldaccess.EagerFieldAccessInformationAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.LazyL1FieldAssignabilityAnalysis
import org.opalj.tac.fpcf.analyses.purity.EagerL2PurityAnalysis

Expand Down Expand Up @@ -50,6 +51,7 @@ object PureVoidMethods extends ProjectAnalysisApplication {
project.get(RTACallGraphKey)

project.get(FPCFAnalysesManagerKey).runAll(
EagerFieldAccessInformationAnalysis,
LazyL0CompileTimeConstancyAnalysis,
LazyStaticDataUsageAnalysis,
LazyInterProceduralEscapeAnalysis,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ import org.opalj.tac.fpcf.analyses.LazyFieldLocalityAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyInterProceduralEscapeAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyReturnValueFreshnessAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazySimpleEscapeAnalysis
import org.opalj.tac.fpcf.analyses.fieldaccess.EagerFieldAccessInformationAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.EagerL0FieldAssignabilityAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.EagerL1FieldAssignabilityAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.EagerL2FieldAssignabilityAnalysis
Expand Down Expand Up @@ -580,6 +581,8 @@ object Purity {
return;
}

support ::= EagerFieldAccessInformationAnalysis

if (eager) {
support ::= EagerClassImmutabilityAnalysis
support ::= EagerTypeImmutabilityAnalysis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import org.opalj.tac.cg.RTACallGraphKey
import org.opalj.tac.fpcf.analyses.LazyFieldLocalityAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyInterProceduralEscapeAnalysis
import org.opalj.tac.fpcf.analyses.escape.LazyReturnValueFreshnessAnalysis
import org.opalj.tac.fpcf.analyses.fieldaccess.EagerFieldAccessInformationAnalysis
import org.opalj.tac.fpcf.analyses.fieldassignability.LazyL1FieldAssignabilityAnalysis
import org.opalj.tac.fpcf.analyses.purity.EagerL2PurityAnalysis
import org.opalj.tac.fpcf.properties.TACAI
Expand Down Expand Up @@ -79,6 +80,7 @@ object UnusedResults extends ProjectAnalysisApplication {
project.get(RTACallGraphKey)

project.get(FPCFAnalysesManagerKey).runAll(
EagerFieldAccessInformationAnalysis,
LazyInterProceduralEscapeAnalysis,
LazyReturnValueFreshnessAnalysis,
LazyFieldLocalityAnalysis,
Expand Down

0 comments on commit 3a7819d

Please sign in to comment.