some commented out code transplanted from BuildFlat that will be the basis for this...
[IRC.git] / Robust / src / Analysis / MLP / MLPAnalysis.java
1 package Analysis.MLP;
2
3 import Analysis.CallGraph.*;
4 import Analysis.OwnershipAnalysis.*;
5 import IR.*;
6 import IR.Flat.*;
7 import java.util.*;
8 import java.io.*;
9
10
11 public class MLPAnalysis {
12
13   // data from the compiler
14   private State state;
15   private TypeUtil typeUtil;
16   private CallGraph callGraph;
17   private OwnershipAnalysis ownAnalysis;
18
19   public MLPAnalysis(State state,
20                      TypeUtil tu,
21                      CallGraph callGraph,
22                      OwnershipAnalysis ownAnalysis
23                      ) {
24
25     double timeStartAnalysis = (double) System.nanoTime();
26
27     this.state       = state;
28     this.typeUtil    = tu;
29     this.callGraph   = callGraph;
30     this.ownAnalysis = ownAnalysis;
31
32
33     double timeEndAnalysis = (double) System.nanoTime();
34     double dt = (timeEndAnalysis - timeStartAnalysis)/(Math.pow( 10.0, 9.0 ) );
35     String treport = String.format( "The mlp analysis took %.3f sec.", dt );
36     System.out.println( treport );
37   }
38
39
40   Stack<FlatSESEEnterNode> seseStack;
41
42   protected void analyze() {
43     seseStack = new Stack<FlatSESEEnterNode>();
44
45     /*
46       if( !seseStack.empty() ) {
47       seseStack.peek().addInVar( tmp );
48       seseStack.peek().addOutVar( out_temp );
49       }
50     */
51
52     /*
53       if( !seseStack.empty() ) {
54       throw new Error("Error: return statement enclosed within SESE "+seseStack.peek());
55       }
56     */
57
58     /*
59     if( sn.isStart() ) {
60       FlatSESEEnterNode fsen=new FlatSESEEnterNode(sn);
61       sn.setFlatEnter(fsen);
62       seseStack.push(fsen);
63       return new NodePair(fsen, fsen);
64     }
65
66     FlatSESEExitNode fsexn=new FlatSESEExitNode(sn);
67     sn.setFlatExit(fsexn);
68     FlatSESEEnterNode fsen=sn.getStart().getFlatEnter();
69     fsexn.setFlatEnter(fsen);    
70     sn.getStart().getFlatEnter().setFlatExit( fsexn );
71     assert !seseStack.empty();
72     assert fsen == seseStack.pop();
73     if( !seseStack.empty() ) {
74       seseStack.peek().addInVarSet ( fsen.getInVarSet()  );
75       seseStack.peek().addOutVarSet( fsen.getOutVarSet() );
76     }
77     */
78   }
79 }