Ignore:
Timestamp:
Jan 13, 2018, 11:57:43 AM (14 months ago)
Author:
nmedfort
Message:

Pablo support for byte comparisions; LineFeed? kernel processes byte streams directly. Some clean up of PabloBuilder? functionality.

File:
1 edited

Legend:

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

    r5705 r5828  
    5353        , Add
    5454        , Subtract
    55         // Relational expressions
     55        // Relational operators
    5656        , LessThan
    5757        , LessThanEquals
     
    6666        , Block
    6767        , Kernel
    68         , Phi
     68        , Extract
    6969        /** Statements **/
    7070        // Boolean operations
     
    8989        // Variable assignments
    9090        , Assign
    91         , Extract     
    92         // Scope blocks
     91        // Scope branch statements
    9392        , If
    9493        , While
     94        // Misc. operations
     95        , Fill
     96        , PackH
     97        , PackL
    9598    };
    9699
     
    107110    }
    108111
    109     inline user_iterator user_begin() {
     112    inline user_iterator user_begin() noexcept {
    110113        return mUsers.begin();
    111114    }
    112115
    113     inline user_iterator user_end() {
     116    inline user_iterator user_end() noexcept {
    114117        return mUsers.end();
    115118    }
    116119
    117     inline const_user_iterator user_begin() const {
     120    inline const_user_iterator user_begin() const noexcept {
    118121        return mUsers.cbegin();
    119122    }
    120123
    121     inline const_user_iterator user_end() const {
     124    inline const_user_iterator user_end() const noexcept {
    122125        return mUsers.cend();
    123126    }
    124127
    125     inline Users & users() {
     128    inline Users & users() noexcept {
    126129        return mUsers;
    127130    }
    128131
    129     inline const Users & users() const {
     132    inline const Users & users() const noexcept {
    130133        return mUsers;
    131134    }
    132135
    133     void replaceAllUsesWith(PabloAST * const expr);
    134 
    135     inline Users::size_type getNumUses() const {
     136    void replaceAllUsesWith(PabloAST * const expr) noexcept;
     137
     138    inline Users::size_type getNumUses() const noexcept {
    136139        return mUsers.size();
    137140    }
     
    154157
    155158    }
    156     bool addUser(PabloAST * const user);
    157 
    158     bool removeUser(PabloAST * const user);
     159    bool addUser(PabloAST * const user) noexcept;
     160
     161    bool removeUser(PabloAST * const user) noexcept;
    159162
    160163    virtual ~PabloAST() = default;
     
    209212    void setName(const String * const name) noexcept;
    210213
    211     inline PabloAST * getOperand(const unsigned index) const {
     214    inline PabloAST * getOperand(const unsigned index) const noexcept {
    212215        assert (index < getNumOperands());
    213216        return mOperand[index];
     
    222225    void insertBefore(Statement * const statement);
    223226    void insertAfter(Statement * const statement);
    224     Statement * removeFromParent();
    225     Statement * eraseFromParent(const bool recursively = false);
    226     Statement * replaceWith(PabloAST * const expr, const bool rename = true, const bool recursively = false);
     227    Statement * removeFromParent() noexcept;
     228    Statement * eraseFromParent(const bool recursively = false) noexcept;
     229    Statement * replaceWith(PabloAST * const expr, const bool rename = true, const bool recursively = false) noexcept;
    227230
    228231    inline Statement * getNextNode() const {
     
    404407    using const_iterator = iterator;
    405408
    406     void addOperand(PabloAST * const expr);
    407 
    408     PabloAST * removeOperand(const unsigned index);
    409 
    410     bool deleteOperand(const PabloAST * const expr);
     409    void addOperand(PabloAST * const expr) noexcept;
     410
     411    PabloAST * removeOperand(const unsigned index) noexcept;
     412
     413    bool deleteOperand(const PabloAST * const expr) noexcept;
    411414
    412415    iterator begin() {
     
    713716 * @brief deleteOperand
    714717 ** ------------------------------------------------------------------------------------------------------------- */
    715 inline bool Variadic::deleteOperand(const PabloAST * const expr) {
     718inline bool Variadic::deleteOperand(const PabloAST * const expr) noexcept {
    716719    for (unsigned i = 0; i != getNumOperands(); ++i) {
    717720        if (LLVM_UNLIKELY(getOperand(i) == expr)) {
Note: See TracChangeset for help on using the changeset viewer.