Ignore:
Timestamp:
Oct 17, 2015, 4:25:05 PM (4 years ago)
Author:
nmedfort
Message:

Update for grapheme cluster mode and boundaries.

File:
1 edited

Legend:

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

    r4819 r4841  
    452452    addTargets(names);
    453453    generateRange(defaultIfHierachy, entry);
    454     updateNames(names);
     454    updateNames(names, entry);
    455455}
    456456
     
    471471    addTargets(names);
    472472    generateRange(noIfHierachy, entry);
    473     updateNames(names);
     473    updateNames(names, entry);
    474474}
    475475
     
    488488inline void UCDCompiler::addTargets(const NameMap & names) {
    489489    for (const auto t : names) {
    490         if (isa<CC>(t.first->getDefinition())) {
     490        if (LLVM_LIKELY(isa<CC>(t.first->getDefinition()))) {
    491491            mTargetMap.emplace(cast<CC>(t.first->getDefinition()), t.second ? t.second : PabloBlock::createZeroes());
    492492        } else {
     
    500500 * @brief updateNames
    501501 ** ------------------------------------------------------------------------------------------------------------- */
    502 inline void UCDCompiler::updateNames(NameMap & names) {
     502inline void UCDCompiler::updateNames(NameMap & names, PabloBuilder & entry) {
    503503    for (auto & t : names) {
    504504        auto f = mTargetMap.find(cast<CC>(t.first->getDefinition()));
    505         t.second = f->second;
     505        if (f != mTargetMap.end()) {
     506            std::string name = t.first->getName();
     507            if (Statement * result = dyn_cast<Statement>(f->second)) {
     508                result->setName(entry.getName(name, false));
     509                t.second = result;
     510            } else {
     511                t.second = entry.createAssign(std::move(name), f->second);
     512            }
     513        }
    506514    }
    507515    mTargetMap.clear();
Note: See TracChangeset for help on using the changeset viewer.