import IR.Tree.BuildIR;
import IR.Tree.SemanticCheck;
import IR.Flat.BuildCodeMultiCore;
+import IR.Flat.BuildCodeMGC;
import IR.Flat.BuildFlat;
import IR.Flat.BuildCode;
import IR.Flat.Inliner;
state.MULTICORE=true;
else if (option.equals("-multicoregc"))
state.MULTICOREGC=true;
- else if (option.equals("-ownership"))
+ else if (option.equals("-mgc")) {
+ state.MGC = true;
+ } else if (option.equals("-ownership"))
state.OWNERSHIP=true;
else if (option.equals("-ownallocdepth")) {
state.OWNERSHIPALLOCDEPTH=Integer.parseInt(args[++i]);
if (state.TASK) {
sc.getClass("TagDescriptor");
}
- if (state.THREAD||state.DSM||state.SINGLETM) {
+ if (state.THREAD||state.DSM||state.SINGLETM||state.MGC) {
sc.getClass("Thread");
}
CallGraph callGraph = new CallGraph(state);
Liveness liveness = new Liveness();
ArrayReferencees ar = new ArrayReferencees(state);
- OwnershipAnalysis oa = new OwnershipAnalysis(state,
+ OwnershipAnalysis oa = null;/*new OwnershipAnalysis(state,
tu,
callGraph,
liveness,
state.OWNERSHIPALLOCDEPTH,
state.OWNERSHIPWRITEDOTS,
state.OWNERSHIPWRITEALL,
- state.OWNERSHIPALIASFILE);
+ state.OWNERSHIPALIASFILE);*/
// synthesis a layout according to target multicore processor
MCImplSynthesis mcImplSynthesis = new MCImplSynthesis(state,
}
}
}
+
+ if (state.MGC) {
+ // generate multicore codes
+ if(state.MULTICORE) {
+ BuildCodeMGC bcmgc=new BuildCodeMGC(state,
+ bf.getMap(),
+ tu,
+ sa,
+ state.CORENUM,
+ state.CORENUM,
+ state.CORENUM4GC,
+ pa);
+ bcmgc.buildCode();
+ }
+ }
+
if(!state.MULTICORE) {
if (state.DSM||state.SINGLETM) {
CallGraph callgraph=new CallGraph(state);