Ignore:
Timestamp:
Jan 21, 2015, 3:16:19 PM (4 years ago)
Author:
nmedfort
Message:

Temporary check in.

File:
1 edited

Legend:

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

    r4419 r4432  
    5252
    5353
    54 class PabloBlock : public StatementList {
     54class PabloBlock : public PabloAST, public StatementList {
    5555    friend class pablo::PabloAST;
     56    friend class Builder;
    5657public:
     58
     59    static inline bool classof(const PabloBlock *) {
     60        return true;
     61    }
     62    static inline bool classof(const Statement *) {
     63        return false;
     64    }
     65    static inline bool classof(const PabloAST * e) {
     66        return e->getClassTypeId() == ClassTypeId::Block;
     67    }
     68    static inline bool classof(const void *) {
     69        return false;
     70    }
    5771
    5872    inline static PabloBlock & Create() {
     
    6680    PabloAST * createAdvance(PabloAST * expr, const int shiftAmount);
    6781
     82    PabloAST * createAdvance(PabloAST * expr, PabloAST * shiftAmount);
     83
    6884    inline Zeroes * createZeroes() const {
    6985        return mZeroes;
     
    7490    }
    7591
    76     Call * createCall(const std::string name);
     92    inline Call * createCall(const std::string name) {
     93        return createCall(getName(name));
     94    }
    7795
    7896    Call * createCall(String * name);
     
    8098    Assign * createAssign(const std::string prefix, PabloAST * expr, const int outputIndex = -1);
    8199
    82     Var * createVar(const std::string name);
     100    inline Var * createVar(const std::string name) {
     101        return createVar(getName(name));
     102    }
    83103
    84104    Var * createVar(String * name);
     
    124144    }
    125145
     146    virtual ~PabloBlock();
     147
    126148protected:
    127149    PabloBlock();
    128150
    129151    PabloBlock(PabloBlock * predecessor);
    130 
    131     void * operator new (std::size_t size) noexcept {
    132         return PabloAST::mAllocator.allocate(size);
    133     }
    134152
    135153    template<typename Type>
     
    145163    Ones * const                                        mOnes;
    146164    SymbolGenerator * const                             mSymbolGenerator;
     165    PabloBlock *                                        mPredecessor;
    147166};
    148167
Note: See TracChangeset for help on using the changeset viewer.