RBlockRelationAnalysis rra,
RBlockStatusAnalysis rsa
) {
- init( s, tu, cg, l, ar, sitesToFlag, rra, rsa );
+ init( s, tu, cg, l, ar, sitesToFlag, rra, rsa, false );
+ }
+
+ public DisjointAnalysis( State s,
+ TypeUtil tu,
+ CallGraph cg,
+ Liveness l,
+ ArrayReferencees ar,
+ Set<FlatNew> sitesToFlag,
+ RBlockRelationAnalysis rra,
+ RBlockStatusAnalysis rsa,
+ boolean suppressOutput
+ ) {
+ init( s, tu, cg, l, ar, sitesToFlag, rra, rsa, suppressOutput );
}
protected void init( State state,
ArrayReferencees arrayReferencees,
Set<FlatNew> sitesToFlag,
RBlockRelationAnalysis rra,
- RBlockStatusAnalysis rsa
+ RBlockStatusAnalysis rsa,
+ boolean suppressOutput
) {
analysisComplete = false;
this.releaseMode = state.DISJOINTRELEASEMODE;
this.determinismDesired = state.DISJOINTDETERMINISM;
- this.writeFinalDOTs = state.DISJOINTWRITEDOTS && !state.DISJOINTWRITEALL;
- this.writeAllIncrementalDOTs = state.DISJOINTWRITEDOTS && state.DISJOINTWRITEALL;
+ this.writeFinalDOTs = state.DISJOINTWRITEDOTS && !state.DISJOINTWRITEALL && !suppressOutput;
+ this.writeAllIncrementalDOTs = state.DISJOINTWRITEDOTS && state.DISJOINTWRITEALL && !suppressOutput;
this.takeDebugSnapshots = state.DISJOINTSNAPSYMBOL != null;
this.descSymbolDebug = state.DISJOINTSNAPSYMBOL;
writeFinalGraphs();
}
- if( state.DISJOINTWRITEIHMS ) {
+ if( state.DISJOINTWRITEIHMS && !suppressOutput ) {
writeFinalIHMs();
}
- if( state.DISJOINTWRITEINITCONTEXTS ) {
+ if( state.DISJOINTWRITEINITCONTEXTS && !suppressOutput ) {
writeInitialContexts();
}
- if( state.DISJOINTALIASFILE != null ) {
+ if( state.DISJOINTALIASFILE != null && !suppressOutput ) {
if( state.TASK ) {
writeAllSharing(state.DISJOINTALIASFILE, treport, justtime, state.DISJOINTALIASTAB, state.lines);
} else {
// 5th pass, use disjointness with NO FLAGGED REGIONS
// to compute taints and effects
disjointAnalysisTaints =
- new DisjointAnalysis(state, typeUtil, callGraph, liveness, arrayReferencees, null, // no
- // FlatNew
- // set
- // to
- // flag
- rblockRel, rblockStatus);
+ new DisjointAnalysis(state, typeUtil, callGraph, liveness, arrayReferencees, null,
+ rblockRel, rblockStatus,
+ true ); // suppress output--this is an intermediate pass
// 6th pass, not available analysis FOR VARIABLES!
methItr = descriptorsToAnalyze.iterator();