3 import Analysis.CallGraph.*;
4 import Analysis.OwnershipAnalysis.*;
11 public class MLPAnalysis {
13 // data from the compiler
15 private TypeUtil typeUtil;
16 private CallGraph callGraph;
17 private OwnershipAnalysis ownAnalysis;
19 public MLPAnalysis(State state,
22 OwnershipAnalysis ownAnalysis
25 double timeStartAnalysis = (double) System.nanoTime();
29 this.callGraph = callGraph;
30 this.ownAnalysis = ownAnalysis;
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 );
40 Stack<FlatSESEEnterNode> seseStack;
42 protected void analyze() {
43 seseStack = new Stack<FlatSESEEnterNode>();
46 if( !seseStack.empty() ) {
47 seseStack.peek().addInVar( tmp );
48 seseStack.peek().addOutVar( out_temp );
53 if( !seseStack.empty() ) {
54 throw new Error("Error: return statement enclosed within SESE "+seseStack.peek());