Ignore:
Timestamp:
Aug 28, 2017, 4:00:17 PM (2 years ago)
Author:
nmedfort
Message:

Bug fixes for multigrep mode. Optional PabloKernel? branch hit counter added. Minor optimizations.

Location:
icGREP/icgrep-devel/icgrep/UCD
Files:
3 edited

Legend:

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

    r5581 r5620  
    515515        }       
    516516        CC * const cc = dyn_cast<CC>(name->getDefinition());
    517         if (cc) {           
     517        if (cc) {
    518518            const auto f = CCs.find(cc);
     519            // This check may not be needed. Memoization ought to detect duplicate classes earlier.
    519520            if (LLVM_LIKELY(f == CCs.end())) {
    520521                PabloAST * const value = t.second ? t.second : zeroes;
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.cpp

    r5386 r5620  
    152152
    153153/** ------------------------------------------------------------------------------------------------------------- *
     154 * @brief print
     155 ** ------------------------------------------------------------------------------------------------------------- */
     156void UnicodeSet::print(llvm::raw_ostream & out) const {
     157    if (LLVM_UNLIKELY(empty())) {
     158        out << "()";
     159    } else {
     160        char joiner = '(';
     161        for (auto r : *this) {
     162            out << joiner << std::get<0>(r);
     163            if (std::get<0>(r) != std::get<1>(r)) {
     164                out << '-' << std::get<1>(r);
     165            }
     166            joiner = ',';
     167        }
     168        out << ')';
     169
     170    }
     171}
     172
     173/** ------------------------------------------------------------------------------------------------------------- *
    154174 * @brief dump
    155175 ** ------------------------------------------------------------------------------------------------------------- */
     
    327347            i1 += n;
    328348            i2 += n;
    329         }
    330         else if (i1.type() == Empty) {
     349        } else if (i1.type() == Empty) {
    331350            for (unsigned i = 0; i < n; ++i, ++i2) {
    332351                append_quad(i2.quad(), quads, runs);
    333352            }
    334353            i1 += n;
    335         }
    336         else if (i2.type() == Empty) {
     354        } else if (i2.type() == Empty) {
    337355            for (unsigned i = 0; i < n; ++i, ++i1) {
    338356                append_quad(i1.quad(), quads, runs);
    339357            }
    340358            i2 += n;
    341         }
    342         else if (i1.type() == Full) {
     359        } else if (i1.type() == Full) {
    343360            for (unsigned i = 0; i < n; ++i, ++i2) {
    344361                append_quad(FULL_QUAD_MASK ^ i2.quad(), quads, runs);
    345362            }
    346363            i1 += n;
    347         }
    348         else if (i2.type() == Empty) {
     364        } else if (i2.type() == Full) {
    349365            for (unsigned i = 0; i < n; ++i, ++i1) {
    350366                append_quad(FULL_QUAD_MASK ^ i1.quad(), quads, runs);
    351367            }
    352368            i2 += n;
    353         }
    354         else {
     369        } else {
    355370            for (unsigned i = 0; i != n; ++i, ++i1, ++i2) {
    356371                append_quad(i1.quad() ^ i2.quad(), quads, runs);
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.h

    r5278 r5620  
    101101    }
    102102
     103    bool empty() const;
     104
    103105    bool contains(const codepoint_t codepoint) const;
    104106
     
    109111    void insert_range(const codepoint_t lo, const codepoint_t hi);
    110112
    111     bool empty() const;
    112 
    113113    size_type size() const;
    114114
     
    116116
    117117    interval_t back() const;
     118
     119    void print(llvm::raw_ostream & out) const;
    118120
    119121    void dump(llvm::raw_ostream & out) const;
Note: See TracChangeset for help on using the changeset viewer.