2 import Analysis.MLP.VariableSourceToken;
3 import IR.Tree.SESENode;
6 public class FlatSESEEnterNode extends FlatNode {
7 private static int identifier=0;
9 protected FlatSESEExitNode exit;
10 protected SESENode treeNode;
11 protected FlatSESEEnterNode parent;
12 protected Set<FlatSESEEnterNode> children;
13 protected Set<TempDescriptor> inVars;
14 protected Set<TempDescriptor> outVars;
15 protected FlatMethod enclosing;
17 public FlatSESEEnterNode( SESENode sn ) {
18 this.id = identifier++;
20 children = new HashSet<FlatSESEEnterNode>();
21 inVars = new HashSet<TempDescriptor>();
22 outVars = new HashSet<TempDescriptor>();
25 public void rewriteUse() {
28 public void rewriteDef() {
31 public void setParent( FlatSESEEnterNode parent ) {
35 public FlatSESEEnterNode getParent() {
39 public void addChild( FlatSESEEnterNode child ) {
40 children.add( child );
43 public Set<FlatSESEEnterNode> getChildren() {
47 public void addInVar( TempDescriptor td ) {
51 public void addOutVar( TempDescriptor td ) {
55 public void addInVarSet( Set<TempDescriptor> s ) {
59 public void addOutVarSet( Set<TempDescriptor> s ) {
63 public Set<TempDescriptor> getInVarSet() {
67 Vector<TempDescriptor> vecinVars;
69 HashSet<TempDescriptor> paramset=new HashSet<TempDescriptor>();
70 paramset.addAll(inVars);
71 paramset.addAll(outVars);
72 vecinVars=new Vector<TempDescriptor>();
73 vecinVars.addAll(paramset);
76 public TempDescriptor getParameter(int i) {
77 if (vecinVars==null) {
80 return vecinVars.get(i);
83 public int numParameters() {
84 if (vecinVars==null) {
87 return vecinVars.size();
90 public Set<FlatNode> getNodeSet() {
91 HashSet<FlatNode> tovisit=new HashSet<FlatNode>();
92 HashSet<FlatNode> visited=new HashSet<FlatNode>();
94 while(!tovisit.isEmpty()) {
95 FlatNode fn=tovisit.iterator().next();
100 for(int i=0; i<fn.numNext(); i++) {
101 FlatNode nn=fn.getNext(i);
102 if (!visited.contains(nn))
110 public Set<TempDescriptor> getOutVarSet() {
114 public void setEnclosingFlatMeth( FlatMethod fm ) {
118 public FlatMethod getEnclosingFlatMeth() {
122 public SESENode getTreeNode() {
126 public int getIdentifier() {
130 public String getPrettyIdentifier() {
131 if( treeNode.getID() != null ) {
132 return treeNode.getID();
137 public String toString() {
138 return "sese "+getPrettyIdentifier()+" enter";
141 public void setFlatExit( FlatSESEExitNode fsexn ) {
145 public FlatSESEExitNode getFlatExit() {
150 return FKind.FlatSESEEnterNode;