GlobalFieldType gft;
DiscoverConflicts dcopts;
- public DelayComputation(LocalityAnalysis locality, State state, TypeAnalysis typeanalysis, GlobalFieldType gft, DiscoverConflicts dcopts) {
+ public DelayComputation(LocalityAnalysis locality, State state, TypeAnalysis typeanalysis, GlobalFieldType gft) {
this.locality=locality;
this.state=state;
this.typeanalysis=typeanalysis;
this.gft=gft;
- this.dcopts=dcopts;
+ }
+
+ public DiscoverConflicts getConflicts() {
+ return dcopts;
}
public void doAnalysis() {
//II. You read a field or element and both (A) you are not in the
//cannot delay set and (B) you do a transactional access to object
+ dcopts=new DiscoverConflicts(locality, state, typeanalysis);
+
MethodDescriptor md=lb.getMethod();
FlatMethod fm=state.getMethodFlat(md);
Hashtable<FlatNode, Integer> atomictable=locality.getAtomic(lb);
TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
this.dc=new DiscoverConflicts(locality, st, typeanalysis);
dc.doAnalysis();
- if (state.SINGLETM&&state.DELAYCOMP) {
- //TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
- GlobalFieldType gft=new GlobalFieldType(callgraph, st, typeutil.getMain());
- delaycomp=new DelayComputation(locality, st, typeanalysis, gft, dc);
- delaycomp.doAnalysis();
- }
+ }
+ if (state.SINGLETM&&state.DELAYCOMP) {
+ //TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
+ TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
+ GlobalFieldType gft=new GlobalFieldType(callgraph, st, typeutil.getMain());
+ delaycomp=new DelayComputation(locality, st, typeanalysis, gft);
+ delaycomp.doAnalysis();
+ dc=delaycomp.getConflicts();
}
if(state.MLP) {