Ignore:
Timestamp:
Oct 24, 2017, 1:10:49 PM (21 months ago)
Author:
cameron
Message:

Drop linebreak normalization; add1 attribute for grep kernel; pablo indexed advance initial check-in

File:
1 edited

Legend:

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

    r5486 r5705  
    3737};
    3838
     39class IndexedAdvance final : public CarryProducingStatement {
     40    friend class PabloBlock;
     41public:
     42    static inline bool classof(const PabloAST * e) {
     43        return e->getClassTypeId() == ClassTypeId::IndexedAdvance;
     44    }
     45    static inline bool classof(const void *) {
     46        return false;
     47    }
     48    virtual ~IndexedAdvance() {
     49    }
     50    inline PabloAST * getExpression() const {
     51        return getOperand(0);
     52    }
     53    inline PabloAST * getIndex() const {
     54        return getOperand(1);
     55    }
     56    inline int64_t getAmount() const {
     57        return llvm::cast<Integer>(getOperand(2))->value();
     58    }
     59protected:
     60    IndexedAdvance(PabloAST * strm, PabloAST * index_strm, PabloAST * shiftAmount, const String * name, Allocator & allocator)
     61    : CarryProducingStatement(ClassTypeId::IndexedAdvance, strm->getType(), {strm, index_strm, shiftAmount}, name, allocator) {
     62        assert(llvm::isa<Integer>(shiftAmount));
     63    }
     64};
     65
     66
    3967}
    4068
Note: See TracChangeset for help on using the changeset viewer.