Move mlp and sese stuff into a separate compiler pass
[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
60      */
61   }
62 }