diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-30 13:25:57 -0600 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-30 13:25:57 -0600 |
commit | 87e7538503756d036fec4c2b18a9c19d126626a4 (patch) | |
tree | 9a3832c1dda7c785905cbcc619bacfbd07d8bf2a /include | |
parent | f00e425e1d6ee51027e6ba66d0a82355fd788f9e (diff) | |
download | chill-87e7538503756d036fec4c2b18a9c19d126626a4.tar.gz chill-87e7538503756d036fec4c2b18a9c19d126626a4.tar.bz2 chill-87e7538503756d036fec4c2b18a9c19d126626a4.zip |
Binary Ternary
Diffstat (limited to 'include')
-rw-r--r-- | include/chillAST/chillAST_node.hh | 5 | ||||
-rw-r--r-- | include/chillAST/chillASTs.hh | 86 | ||||
-rwxr-xr-x | include/ir_clang.hh | 4 |
3 files changed, 19 insertions, 76 deletions
diff --git a/include/chillAST/chillAST_node.hh b/include/chillAST/chillAST_node.hh index 255c07a..4db00ce 100644 --- a/include/chillAST/chillAST_node.hh +++ b/include/chillAST/chillAST_node.hh @@ -315,9 +315,8 @@ public: fprintf(stderr, "(%s) forgot to implement gatherVarDeclsMore()\n", getTypeString()); }; - virtual void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls) { // ACTUAL Declaration - fprintf(stderr, "(%s) forgot to implement gatherScalarVarDecls()\n", getTypeString()); - }; + //! Actual declaration + virtual void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls); virtual void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls); diff --git a/include/chillAST/chillASTs.hh b/include/chillAST/chillASTs.hh index ea8feaa..795f12b 100644 --- a/include/chillAST/chillASTs.hh +++ b/include/chillAST/chillASTs.hh @@ -550,16 +550,16 @@ public: void removeSyncComment(); - chillAST_Node *getInit() { return children[0]; }; + chillAST_Node *getInit() { return getChild(0); }; void setInit(chillAST_Node *i) { setChild(0,i); } - chillAST_Node *getCond() { return children[1]; }; + chillAST_Node *getCond() { return getChild(1); }; void setCond(chillAST_Node *c) { setChild(1,c); } - chillAST_Node *getInc() { return children[2]; }; + chillAST_Node *getInc() { return getChild(2); }; void setInc(chillAST_Node *i) { setChild(2,i); } - chillAST_Node *getBody() { return children[3]; }; + chillAST_Node *getBody() { return getChild(3); }; void setBody(chillAST_Node *b) { setChild(3,b); }; @@ -626,10 +626,6 @@ public: // variables that are special for this type of node char *op; // TODO need enum so far, only "?" conditional operator - chillAST_Node *condition; - chillAST_Node *lhs; // keep name from binary - chillAST_Node *rhs; - // constructors chillAST_TernaryOperator(); @@ -641,57 +637,29 @@ public: bool isLeaf() { return false; }; - char *getOp() { return op; }; // dangerous. could get changed! - chillAST_Node *getCond() { return condition; }; - chillAST_Node *getRHS() { return rhs; }; + chillAST_Node *getCond() { return getChild(0); }; - chillAST_Node *getLHS() { return lhs; }; + chillAST_Node *getRHS() { return getChild(1); }; - void setCond(chillAST_Node *newc) { - condition = newc; - newc->setParent(this); - } + chillAST_Node *getLHS() { return getChild(2); }; - void setLHS(chillAST_Node *newlhs) { - lhs = newlhs; - newlhs->setParent(this); - } + void setCond(chillAST_Node *newc) { setChild(0,newc); } - void setRHS(chillAST_Node *newrhs) { - rhs = newrhs; - newrhs->setParent(this); - } + void setLHS(chillAST_Node *newlhs) { setChild(1,newlhs); } + void setRHS(chillAST_Node *newrhs) { setChild(2,newrhs); } // required methods that I can't seem to get to inherit chillAST_Node *constantFold(); chillAST_Node *clone(); - void replaceChild(chillAST_Node *old, chillAST_Node *newchild); - - 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 gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls); - void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl); - bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab, bool forcesync = false) { return false; }; // no loops under here void loseLoopWithLoopVar(char *var) {}; // ternop can't have loop as child? @@ -703,11 +671,9 @@ public: // variables that are special for this type of node char *op; // TODO need enum - chillAST_Node *lhs; - chillAST_Node *rhs; - // constructors + chillAST_BinaryOperator(); chillAST_BinaryOperator(chillAST_Node *lhs, const char *op, chillAST_Node *rhs); // other methods particular to this type of node @@ -719,19 +685,13 @@ public: bool isLeaf() { return false; }; - chillAST_Node *getRHS() { return rhs; }; + chillAST_Node *getLHS() { return getChild(0); }; - chillAST_Node *getLHS() { return lhs; }; + chillAST_Node *getRHS() { return getChild(1); }; - void setLHS(chillAST_Node *newlhs) { - lhs = newlhs; - newlhs->setParent(this); - } + void setLHS(chillAST_Node *newlhs) { setChild(0,newlhs); } - void setRHS(chillAST_Node *newrhs) { - rhs = newrhs; - newrhs->setParent(this); - } + void setRHS(chillAST_Node *newrhs) { setChild(1,newrhs); } char *getOp() { return op; }; // dangerous. could get changed! bool isAugmentedAssignmentOp() { @@ -776,33 +736,17 @@ public: chillAST_Node *clone(); - void replaceChild(chillAST_Node *old, chillAST_Node *newchild); - void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento); // chillAST_BinaryOperator 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 gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls); - void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl); - bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab, bool forcesync = false) { return false; }; // no loops under here void loseLoopWithLoopVar(char *var) {}; // binop can't have loop as child? - void gatherStatements(std::vector<chillAST_Node *> &statements); // - }; class chillAST_ArraySubscriptExpr : public chillAST_Node { diff --git a/include/ir_clang.hh b/include/ir_clang.hh index 81a6fde..9b9e4be 100755 --- a/include/ir_clang.hh +++ b/include/ir_clang.hh @@ -149,7 +149,7 @@ struct IR_chillScalarRef : public IR_ScalarRef { dre = NULL; //bop = ins; // do we need this? if (pos == OP_LEFT) { - chillAST_Node *lhs = ins->lhs; + chillAST_Node *lhs = ins->getLHS(); if (lhs->isDeclRefExpr()) { chillAST_DeclRefExpr *DRE = (chillAST_DeclRefExpr *) lhs; dre = DRE; @@ -161,7 +161,7 @@ struct IR_chillScalarRef : public IR_ScalarRef { exit(-1); } } else { - chillAST_Node *rhs = ins->rhs; + chillAST_Node *rhs = ins->getRHS(); if (rhs->isDeclRefExpr()) { chillAST_DeclRefExpr *DRE = (chillAST_DeclRefExpr *) rhs; dre = DRE; |