Changeset 4818


Ignore:
Timestamp:
Oct 4, 2015, 1:16:06 PM (2 years ago)
Author:
nmedfort
Message:

GCC fix + misc. changes

Location:
icGREP/icgrep-devel/icgrep
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.cpp

    r4812 r4818  
    118118        return mY;
    119119    }
    120     if (noUninitialized) {
    121         mN = uset_complement(mY);
     120    if (mNoUninitialized) {
     121        mN = ~mY;
     122        mNoUninitialized = false;
    122123    }
    123124    return mN;
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.h

    r4737 r4818  
    150150    BinaryPropertyObject(UCD::property_t p, UnicodeSet s)
    151151    : PropertyObject(p, ClassTypeId::BinaryProperty)
    152     , noUninitialized(true)
     152    , mNoUninitialized(true)
    153153    , mY(s) {
    154154
     
    157157    const UnicodeSet & GetCodepointSet(const int property_enum_val);
    158158private:
    159     bool noUninitialized;
     159    bool mNoUninitialized;
    160160    UnicodeSet mY;
    161161    UnicodeSet mN;
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.cpp

    r4812 r4818  
    339339 * @brief equality
    340340 ** ------------------------------------------------------------------------------------------------------------- */
    341 UnicodeSet UnicodeSet::operator==(const UnicodeSet & other) const {
     341bool UnicodeSet::operator==(const UnicodeSet & other) const {
    342342    if (mRuns.size() != other.mRuns.size() || mQuads.size() != other.mQuads.size()) {
    343343        return false;
     
    350350    }
    351351    return true;
     352}
     353
     354/** ------------------------------------------------------------------------------------------------------------- *
     355 * @brief less operator
     356 ** ------------------------------------------------------------------------------------------------------------- */
     357bool UnicodeSet::operator<(const UnicodeSet & other) const {
     358    if (LLVM_LIKELY(mRuns.size() != other.mRuns.size())) {
     359        return mRuns.size() < other.mRuns.size();
     360    } else if (LLVM_LIKELY(mQuads.size() != other.mQuads.size())) {
     361        return (mQuads.size() < other.mQuads.size());
     362    } else { // equal run and quad lengths; test their individual values
     363        for (auto ri = mRuns.cbegin(), end = mRuns.cend(), rj = other.mRuns.cbegin(); ri != end; ++ri, ++rj) {
     364            if (*ri < *rj) {
     365                return true;
     366            } else if (*ri > *rj) {
     367                return false;
     368            }
     369        }
     370        for (auto qi = mQuads.cbegin(), end = mQuads.cend(), qj = other.mQuads.cbegin(); qi != end; ++qi, ++qj) {
     371            if (*qi < *qj) {
     372                return true;
     373            } else if (*qi > *qj) {
     374                return false;
     375            }
     376        }
     377        return false;
     378    }
    352379}
    353380
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.h

    r4812 r4818  
    173173    inline UnicodeSet & operator=(const UnicodeSet & other) = default;
    174174    inline UnicodeSet & operator=(UnicodeSet && other) = default;
    175     UnicodeSet operator==(const UnicodeSet & other) const;
     175    bool operator==(const UnicodeSet & other) const;
     176    bool operator<(const UnicodeSet & other) const;
    176177
    177178    UnicodeSet();
     
    201202}
    202203
    203 inline UnicodeSet uset_complement(const UnicodeSet & s) {
    204     return ~s;
    205 }
    206 
    207 inline UnicodeSet uset_intersection(const UnicodeSet & s1, const UnicodeSet & s2) {
    208     return s1 & s2;
    209 }
    210 
    211 inline UnicodeSet uset_union(const UnicodeSet & s1, const UnicodeSet & s2) {
    212     return s1 + s2;
    213 }
    214 
    215 inline UnicodeSet uset_difference(const UnicodeSet & s1, const UnicodeSet & s2) {
    216     return s1 - s2;
    217 }
    218 
    219 inline UnicodeSet uset_symmetric_difference(const UnicodeSet & s1, const UnicodeSet & s2) {
    220     return s1 ^ s2;
    221 }
    222 
    223204}
    224205
  • icGREP/icgrep-devel/icgrep/re/re_compiler.cpp

    r4815 r4818  
    244244            }
    245245        } else if (Seq * seq = dyn_cast<Seq>(re)) {
    246             for (auto si = seq->begin(); si != seq->end(); ) {
    247                 RE * re = resolve(*si);
    248                 if (LLVM_UNLIKELY(isa<Seq>(re))) {
    249                     auto sj = cast<Seq>(re)->begin();
    250                     *si = *sj;
    251                     si = seq->insert(++si, ++sj, cast<Seq>(re)->end());
    252                 } else {
    253                     *si++ = re;
    254                 }
     246            for (auto si = seq->begin(); si != seq->end(); ++si) {
     247                *si = resolve(*si);
    255248            }
    256249        } else if (Alt * alt = dyn_cast<Alt>(re)) {
     
    261254                    unionCC = (unionCC == nullptr) ? cc : makeCC(unionCC, cc);
    262255                    ai = alt->erase(ai);
    263                 } else if (LLVM_UNLIKELY(isa<Alt>(re))) {
    264                     auto aj = cast<Alt>(re)->begin();
    265                     *ai = *aj;
    266                     ai = alt->insert(++ai, ++aj, cast<Alt>(re)->end());
    267256                } else {
    268257                    *ai++ = re;
  • icGREP/icgrep-devel/icgrep/re/re_name.h

    r4809 r4818  
    4343        mCompiled = var;
    4444    }
    45     void setDefinition(RE * def);
     45    void setDefinition(RE * definition);
    4646    virtual ~Name() {}
    4747protected:
     
    5757    , mName(replicateString(name, nameLength))
    5858    , mType(type)
    59     , mDefiningRE(defn)
     59    , mDefinition(defn)
    6060    , mCompiled(nullptr)
    6161    {
     
    7777    const char * const  mName;
    7878    const Type          mType;
    79     RE *                mDefiningRE;
     79    RE *                mDefinition;
    8080    pablo::PabloAST *   mCompiled;
    8181};
     
    9898
    9999inline RE * Name::getDefinition() const {
    100     return mDefiningRE;
     100    return mDefinition;
    101101}
    102102
    103 inline void Name::setDefinition(RE * d) {
    104     assert (d != this);
    105     mDefiningRE = d;
     103inline void Name::setDefinition(RE * definition) {
     104    assert (definition != this);
     105    mDefinition = definition;
    106106}
    107107
Note: See TracChangeset for help on using the changeset viewer.