Ignore:
Timestamp:
Jan 10, 2015, 3:14:51 PM (4 years ago)
Author:
nmedfort
Message:

More work on usedef info.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/pabloAST.h

    r4414 r4415  
    4040        , Call
    4141        , If
     42        , Integer
    4243        , MatchStar
    4344        , Next
     
    115116    }
    116117
    117     inline void replaceUsesOfWith(PabloAST * from, PabloAST * to) {
    118         if (LLVM_UNLIKELY(from == to)) {
    119             return;
    120         }
    121         for (unsigned i = 0, operands = getNumOperands(); i != operands; ++i) {
     118    inline PabloAST * replaceUsesOfWith(PabloAST * from, PabloAST * to) {
     119        if (from == to) {
     120            return this;
     121        }
     122        for (unsigned i = 0; i != getNumOperands(); ++i) {
    122123            if (getOperand(i) == from) {
    123                 setOperand(i, to);
     124                return setOperand(i, to);
    124125            }
    125126        }
     127        return this;
    126128    }
    127129
     
    131133    }
    132134
     135    PabloAST * setOperand(const unsigned index, PabloAST * value);
     136
    133137    unsigned getNumOperands() const {
    134138        return mOperand.size();
    135     }
    136 
    137     void setOperand(const unsigned index, PabloAST * value) {
    138         assert (index < getNumOperands());
    139         mOperand[index] = value;
    140139    }
    141140
     
    170169        }
    171170    }
     171
    172172    virtual ~Statement() = 0;
    173173protected:
     
    334334
    335335    StatementList()
    336     : mFirst(nullptr)
     336    : mInsertionPoint(nullptr)
     337    , mFirst(nullptr)
    337338    , mLast(nullptr)
    338339    {
     
    404405    }
    405406
    406     void push_back(Statement * const statement);
     407    void setInsertPoint(Statement * const statement);
     408
     409    void setInsertPoint(StatementList * const list);
     410
     411    Statement * getInsertPoint() const {
     412        return mInsertionPoint;
     413    }
     414
     415    void insert(Statement * const statement);
     416
     417    void insertAfterLastOperand(Statement * const statement);
    407418
    408419private:
     420
     421    Statement   * mInsertionPoint;
    409422    Statement   * mFirst;
    410     Statement   * mLast;
     423    Statement   * mLast;   
    411424};
    412425
Note: See TracChangeset for help on using the changeset viewer.