Ignore:
Timestamp:
Oct 31, 2014, 6:04:25 PM (5 years ago)
Author:
nmedfort
Message:

More Pablo IR manipulation functionality; finished use analysis optimizer (requires boost). Removed remaining LLVM optimization passes.

File:
1 edited

Legend:

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

    r4276 r4280  
    99
    1010#include <pablo/pe_string.h>
     11#include <array>
    1112
    1213namespace pablo {
     
    2425    virtual ~Assign() {
    2526    }
     27    virtual PabloAST * getOperand(const unsigned index) const {
     28        assert (index < 2);
     29        return mExprs[index];
     30    }
     31    virtual unsigned getNumOperands() const {
     32        return 2;
     33    }
     34    virtual void setOperand(const unsigned index, PabloAST * value) {
     35        assert (index < 2);
     36        mExprs[index] = value;
     37    }
    2638    inline const String * getName() const {
    27         return mName;
     39        return cast<String>(mExprs[0]);
    2840    }
    2941    inline PabloAST * getExpr() const {
    30         return mExpr;
     42        return mExprs[1];
    3143    }
    3244    inline bool isOutputAssignment() const {
     
    4052        return mAllocator.allocate(size);
    4153    }
    42     Assign(PabloAST * name, PabloAST * expr, const int outputIndex)
    43     : Statement(ClassTypeId::Assign)
    44     , mName(cast<String>(name))
    45     , mExpr(expr)
     54    Assign(PabloAST * name, PabloAST * expr, const int outputIndex, StatementList * parent)
     55    : Statement(ClassTypeId::Assign, parent)
     56    , mExprs({name, expr})
    4657    , mOutputIndex(outputIndex)
    4758    {
     
    4960    }
    5061private:
    51     String * const          mName;
    52     PabloAST * const        mExpr;
    53     const int               mOutputIndex;
     62    std::array<PabloAST *,2>    mExprs;
     63    const int                   mOutputIndex;
    5464};
    5565
Note: See TracChangeset for help on using the changeset viewer.