liveness analysis simplified to ignore SESE's, analyzes each SESE in isolation. ...
[IRC.git] / Robust / src / IR / Flat / FlatSESEEnterNode.java
1 package IR.Flat;
2 import Analysis.MLP.VariableSourceToken;
3 import IR.Tree.SESENode;
4 import java.util.*;
5
6 public class FlatSESEEnterNode extends FlatNode {
7   private static int identifier=0;
8   private int id;
9   protected FlatSESEExitNode exit;
10   protected SESENode treeNode;
11   protected Set<FlatSESEEnterNode> children;
12   protected Set<TempDescriptor> inVars;
13   protected Set<VariableSourceToken> outVars;
14   protected FlatMethod enclosing;
15
16   public FlatSESEEnterNode( SESENode sn ) {
17     this.id  = identifier++;
18     treeNode = sn;
19     children = new HashSet<FlatSESEEnterNode>();
20     inVars   = new HashSet<TempDescriptor>();
21     outVars  = new HashSet<VariableSourceToken>();
22   }
23
24   public void rewriteUse() {
25   }
26
27   public void rewriteDef() {
28   }
29
30   public void addChild( FlatSESEEnterNode child ) {
31     children.add( child );
32   }
33
34   public Set<FlatSESEEnterNode> getChildren() {
35     return children;
36   }
37
38   public void addInVar( TempDescriptor td ) {
39     inVars.add( td );
40   }
41
42   public void addOutVar( VariableSourceToken vst ) {
43     outVars.add( vst );
44   }
45
46   public void addInVarSet( Set<TempDescriptor> s ) {
47     inVars.addAll( s );
48   }
49
50   public void addOutVarSet( Set<VariableSourceToken> s ) {
51     outVars.addAll( s );
52   }
53
54   public Set<TempDescriptor> getInVarSet() {
55     return inVars;
56   }
57
58   public Set<VariableSourceToken> getOutVarSet() {
59     return outVars;
60   }
61
62   public void setEnclosingFlatMeth( FlatMethod fm ) {
63     enclosing = fm;
64   }
65
66   public FlatMethod getEnclosingFlatMeth() {
67     return enclosing;
68   }
69
70   public SESENode getTreeNode() {
71     return treeNode;
72   }
73
74   public int getIdentifier() {
75     return id;
76   }
77
78   public String getPrettyIdentifier() {    
79     if( treeNode.getID() != null ) {
80       return treeNode.getID();
81     }     
82     return ""+id;
83   }
84
85   public String toString() {
86     return "sese "+getPrettyIdentifier()+" enter";
87   }
88
89   public void setFlatExit( FlatSESEExitNode fsexn ) {
90     exit = fsexn;
91   }
92
93   public FlatSESEExitNode getFlatExit() {
94     return exit;
95   }
96
97   public int kind() {
98     return FKind.FlatSESEEnterNode;
99   }
100 }