summaryrefslogtreecommitdiff
path: root/include/chillAST/chillASTs.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/chillAST/chillASTs.hh')
-rw-r--r--include/chillAST/chillASTs.hh318
1 files changed, 35 insertions, 283 deletions
diff --git a/include/chillAST/chillASTs.hh b/include/chillAST/chillASTs.hh
index 90f19e8..bbfeba4 100644
--- a/include/chillAST/chillASTs.hh
+++ b/include/chillAST/chillASTs.hh
@@ -173,8 +173,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -290,8 +288,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -410,8 +406,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -512,8 +506,6 @@ public:
// none of these make sense for macros
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
@@ -573,8 +565,6 @@ public:
chillAST_Node *clone();
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab, bool forcesync = false);
void gatherLoopIndeces(std::vector<chillAST_VarDecl *> &indeces);
@@ -656,8 +646,6 @@ public:
chillAST_Node *clone();
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
@@ -739,8 +727,6 @@ public:
void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento); // chillAST_BinaryOperator
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
@@ -796,8 +782,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -855,8 +839,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -904,7 +886,6 @@ public:
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento) {}; // does nothing
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
@@ -949,8 +930,6 @@ public:
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento) {}; // does nothing
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing ;
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing ;
@@ -992,8 +971,6 @@ public:
chillAST_Node *clone();
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento); // chillAST_UnaryOperator
void gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls);
@@ -1010,10 +987,8 @@ class chillAST_ImplicitCastExpr : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_IMPLICITCASTEXPR; }
- // variables that are special for this type of node
- chillAST_Node *subexpr;
-
// constructors
+ chillAST_ImplicitCastExpr();
chillAST_ImplicitCastExpr(chillAST_Node *sub);
// other methods particular to this type of node
@@ -1021,29 +996,12 @@ public:
bool isLeaf() { return false; };
- // required methods that I can't seem to get to inherit
- void replaceChild(chillAST_Node *old, chillAST_Node *newchild);
-
- chillAST_Node *constantFold();
+ chillAST_Node* getSubExpr() { return getChild(0); }
+ void setSubExpr(chillAST_Node* sub) { return setChild(0,sub); }
+ // required methods that I can't seem to get to inherit
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
//void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1058,42 +1016,23 @@ public:
// variables that are special for this type of node
//! String representing the type it casts to
char *towhat;
- chillAST_Node *subexpr;
// constructors
+ chillAST_CStyleCastExpr();
chillAST_CStyleCastExpr(const char *to, chillAST_Node *sub);
// other methods particular to this type of node
// required methods that I can't seem to get to inherit
- void replaceChild(chillAST_Node *old, chillAST_Node *newchild);
-
- chillAST_Node *constantFold();
+ chillAST_Node* getSubExpr() { return getChild(0); }
+ void setSubExpr(chillAST_Node* sub) { return setChild(0,sub); }
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
- chillAST_Node *findref() { return subexpr; };// find the SINGLE constant or data reference at this node or below
+ chillAST_Node *findref() { return getSubExpr(); };// find the SINGLE constant or data reference at this node or below
};
@@ -1102,35 +1041,19 @@ public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_CSTYLEADDRESSOF; }
// variables that are special for this type of node
- chillAST_Node *subexpr;
// constructors
+ chillAST_CStyleAddressOf();
chillAST_CStyleAddressOf(chillAST_Node *sub);
// other methods particular to this type of node
+ chillAST_Node* getSubExpr() { return getChild(0); }
+ void setSubExpr(chillAST_Node* sub) { return setChild(0,sub); }
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
//void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1142,47 +1065,36 @@ class chillAST_CudaMalloc : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_CUDAMALLOC; }
- // variables that are special for this type of node
- chillAST_Node *devPtr; // Pointer to allocated device memory
- chillAST_Node *sizeinbytes;
-
// constructors
+ chillAST_CudaMalloc();
chillAST_CudaMalloc(chillAST_Node *devmemptr, chillAST_Node *size);
// other methods particular to this type of node
+ chillAST_Node* getDevPtr() {return getChild(0);}
+ void setDevPtr(chillAST_Node* devptr) { setChild(0,devptr);}
+ chillAST_Node* getSize() {return getChild(1);}
+ void setSize(chillAST_Node* size) { setChild(1,size);}
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- //void gatherDeclRefExprs( std::vector<chillAST_DeclRefExpr *>&refs );
- //void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
};
+//! CudaFree
class chillAST_CudaFree : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_CUDAFREE; }
// variables that are special for this type of node
+ // TODO Seriously wrong, this is not a new variable declaration
chillAST_VarDecl *variable;
// constructors
@@ -1202,8 +1114,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -1222,35 +1132,18 @@ public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_MALLOC; }
// variables that are special for this type of node
- //! The subexpression calculating bytes
- chillAST_Node *sizeexpr; // bytes
// constructors
+ chillAST_Malloc();
chillAST_Malloc(chillAST_Node *numthings); // malloc (sizeof(int) *1024)
// other methods particular to this type of node
+ chillAST_Node* getSize() { return getChild(0); }
+ void setSize(chillAST_Node* size) { setChild(0,size); }
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- //void gatherDeclRefExprs( std::vector<chillAST_DeclRefExpr *>&refs );
- //void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1267,6 +1160,7 @@ public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_CUDAMEMCPY; }
// variables that are special for this type of node
+ // TODO Very wrong, this is not a declaration
chillAST_VarDecl *dest; // Pointer to allocated device memory
chillAST_VarDecl *src;
chillAST_Node *size;
@@ -1289,8 +1183,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -1307,64 +1199,24 @@ public:
class chillAST_CudaSyncthreads : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_CUDASYNCTHREADS; }
- // variables that are special for this type of node
-
// constructors
chillAST_CudaSyncthreads();
-
- // other methods particular to this type of node
-
-
- // required methods that I can't seem to get to inherit
- //chillAST_Node* constantFold() {};
- //chillAST_Node* clone();
- //void gatherArrayRefs( std::vector<chillAST_ArraySubscriptExpr*> &refs, bool writtento ){};
- //void gatherScalarRefs( std::vector<chillAST_DeclRefExpr*> &refs, bool writtento ) ;
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls) {}; // does nothing
- //void gatherDeclRefExprs( std::vector<chillAST_DeclRefExpr *>&refs );
- //void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
- //bool findLoopIndexesToReplace( chillAST_SymbolTable *symtab, bool forcesync=false ){ return false; };
-
};
class chillAST_ReturnStmt : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_RETURNSTMT; }
-
- // variables that are special for this type of node
- //! expression to return
- chillAST_Node *returnvalue;
-
// constructors
+ chillAST_ReturnStmt();
chillAST_ReturnStmt(chillAST_Node *retval);
// other methods particular to this type of node
-
+ chillAST_Node* getRetVal() { return getChild(0); }
+ void setRetVal(chillAST_Node *ret) { setChild(0,ret); }
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
//void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1400,8 +1252,6 @@ public:
void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
@@ -1420,39 +1270,17 @@ public:
class chillAST_ParenExpr : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_PARENEXPR; }
-
- // variables that are special for this type of node
- chillAST_Node *subexpr;
-
// constructors
+ chillAST_ParenExpr();
chillAST_ParenExpr(chillAST_Node *sub);
// other methods particular to this type of node
-
+ chillAST_Node* getSubExpr() { return getChild(0); }
+ void setSubExpr(chillAST_Node* sub) { setChild(0, sub); }
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1473,28 +1301,8 @@ public:
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl) {};
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
@@ -1504,35 +1312,15 @@ class chillAST_NoOp : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_NOOP; }
- chillAST_NoOp(); // { parent = p; };
+ chillAST_NoOp();
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold() {};
-
chillAST_Node *clone() {
chillAST_Node *n = new chillAST_NoOp();
n->setParent(parent);
return n;
}; // ??
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento) {};
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento) {};
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls) {};
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls) {};
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs) {};
-
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl) {};
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; };//no loops under here
};
@@ -1542,78 +1330,42 @@ public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_IFSTMT; }
// variables that are special for this type of node
- chillAST_Node *cond;
- chillAST_Node *thenpart;
- chillAST_Node *elsepart;
IR_CONDITION_TYPE conditionoperator; // from ir_code.hh
// constructors
chillAST_IfStmt();
-
chillAST_IfStmt(chillAST_Node *c, chillAST_Node *t, chillAST_Node *e);
// other methods particular to this type of node
- chillAST_Node *getCond() { return cond; };
+ chillAST_Node *getCond() { return getChild(0); };
- chillAST_Node *getThen() { return thenpart; };
+ chillAST_Node *getThen() { return getChild(1); };
- chillAST_Node *getElse() { return elsepart; };
+ chillAST_Node *getElse() { return getChild(2); };
- void setCond(chillAST_Node *b) {
- cond = b;
- if (cond) cond->parent = this;
- };
+ void setCond(chillAST_Node *b) { setChild(0,b); };
- void setThen(chillAST_Node *b) {
- thenpart = b;
- if (thenpart) thenpart->parent = this;
- };
+ void setThen(chillAST_Node *b) { setChild(1,b); };
- void setElse(chillAST_Node *b) {
- elsepart = b;
- if (elsepart) elsepart->parent = this;
- };
+ void setElse(chillAST_Node *b) { setChild(2,b); };
// required methods that I can't seem to get to inherit
- chillAST_Node *constantFold();
-
chillAST_Node *clone();
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
-
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
//void replaceVarDecls( chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab, bool forcesync = false);
- void gatherStatements(std::vector<chillAST_Node *> &statements);
-
};
class chillAST_something : public chillAST_Node {
public:
virtual CHILLAST_NODE_TYPE getType() { return CHILLAST_NODE_UNKNOWN; }
- // variables that are special for this type of node
-
// constructors
chillAST_something();
-
- // other methods particular to this type of node
-
-
- // required methods that I can't seem to get to inherit
};