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;  | 
