Ignore:
Timestamp:
Sep 30, 2014, 2:44:40 PM (5 years ago)
Author:
nmedfort
Message:

Replaced dynamic_cast with llvm::dyn_cast in pablo code; implemented make functions for pablo constructors. Disabled RTTI.

File:
1 edited

Legend:

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

    r4199 r4200  
    1313
    1414class Xor : public PabloE {
     15    friend PabloE * make_xor(PabloE *, PabloE *);
    1516public:
     17    static inline bool classof(const PabloE * e) {
     18        return e->getClassTypeId() == ClassTypeId::Xor;
     19    }
     20    static inline bool classof(const void *) {
     21        return false;
     22    }
     23    virtual ~Xor() {
     24        delete mExpr1;
     25        delete mExpr2;
     26    }
     27    inline PabloE * getExpr1() const {
     28        return mExpr1;
     29    }
     30    inline PabloE * getExpr2() const {
     31        return mExpr2;
     32    }
     33protected:
    1634    Xor(PabloE * expr1, PabloE * expr2)
    17     : PabloE(ClassTypeId::MatchStar)
     35    : PabloE(ClassTypeId::Xor)
    1836    , mExpr1(expr1)
    1937    , mExpr2(expr2)
     
    2139
    2240    }
     41private:
     42    PabloE * const mExpr1;
     43    PabloE * const mExpr2;
     44};
    2345
    24     virtual ~Xor() {
    25         delete mExpr1;
    26         delete mExpr2;
    27     }
     46PabloE * make_xor(PabloE * expr1, PabloE * expr2);
    2847
    29     inline PabloE * getExpr1() const {
    30         return mExpr1;
    31     }
    32 
    33     inline PabloE * getExpr2() const {
    34         return mExpr2;
    35     }
    36 private:
    37     PabloE* mExpr1;
    38     PabloE* mExpr2;
    39 };
    4048}
    4149
Note: See TracChangeset for help on using the changeset viewer.