Ignore:
Timestamp:
Jun 23, 2015, 9:29:39 AM (4 years ago)
Author:
nmedfort
Message:

Replaced CharSetItem? with a std::pair.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/cc/cc_compiler.cpp

    r4612 r4614  
    9393    if (cc->size() > 2) {
    9494        bool combine = true;
    95         for (const CharSetItem & item : *cc) {
    96             if (item.lo_codepoint != item.hi_codepoint) {
     95        for (const interval_t & i : *cc) {
     96            if (lo_codepoint(i) != hi_codepoint(i)) {
    9797                combine = false;
    9898                break;
     
    102102            auto i = cc->cbegin();
    103103            for (auto j = i; ++j != cc->cend(); i = j) {
    104                 const CharSetItem & curr_item = *i;
    105                 const CharSetItem & next_item = *j;
    106                 if ((curr_item.lo_codepoint + 2) != next_item.lo_codepoint) {
     104                if ((lo_codepoint(i) + 2) != lo_codepoint(j)) {
    107105                    combine  = false;
    108106                    break;
     
    110108            }
    111109            if (combine) {
    112                 codepoint_t lo = cc->front().lo_codepoint;
    113                 codepoint_t hi = cc->back().lo_codepoint;
     110                codepoint_t lo = lo_codepoint(cc->front());
     111                codepoint_t hi = lo_codepoint(cc->back());
    114112                const codepoint_t mask = mEncoding.getMask();
    115113                lo &= (mask - 1);
     
    125123    }
    126124    PabloAST * expr = nullptr;
    127     for (const CharSetItem & item : *cc) {
    128         PabloAST * temp = char_or_range_expr(item.lo_codepoint, item.hi_codepoint, pb);
     125    for (const interval_t & i : *cc) {
     126        PabloAST * temp = char_or_range_expr(lo_codepoint(i), hi_codepoint(i), pb);
    129127        expr = (expr == nullptr) ? temp : pb.createOr(expr, temp);
    130128    }
     
    140138
    141139    std::vector<PabloAST*> bit_terms;
    142     unsigned i = 0;
    143 
    144     while (selected_bits)
    145     {
    146         unsigned test_bit = 1 << i;
    147         if (selected_bits & test_bit)
    148         {
    149             if ((pattern & test_bit) == 0)
    150             {
     140    for (unsigned i = 0; selected_bits; ++i) {
     141        unsigned test_bit = static_cast<unsigned>(1) << i;
     142        if ((selected_bits & test_bit) != 0) {
     143            if ((pattern & test_bit) == 0) {
    151144                bit_terms.push_back(pb.createNot(getBasisVar(i)));
    152145            }
    153             else
    154             {
     146            else {
    155147                bit_terms.push_back(getBasisVar(i));
    156148            }
    157149        }
    158         else
    159         {
     150        else {
    160151            bit_terms.push_back(pb.createOnes());
    161152        }
    162153        selected_bits &= ~test_bit;
    163         i++;
    164154    }
    165155
Note: See TracChangeset for help on using the changeset viewer.