Ignore:
Timestamp:
Jul 24, 2015, 6:31:27 PM (4 years ago)
Author:
nmedfort
Message:

Temporary check in.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/optimizers/pablo_simplifier.cpp

    r4658 r4699  
    4343inline bool Simplifier::isSuperfluous(const Assign * const assign) {
    4444    for (const PabloAST * inst : assign->users()) {
    45         if (isa<Next>(inst) || isa<PabloFunction>(inst) || isa<If>(inst)) {
     45        if (isa<Next>(inst) || isa<PabloFunction>(inst)) {
     46            return false;
     47        } else if (isa<If>(inst)) {
     48            const If * ifNode = cast<If>(inst);
     49            if (ifNode->getCondition() == assign) {
     50                bool notFound = true;
     51                for (Assign * defVar : ifNode->getDefined()) {
     52                    if (defVar == assign) {
     53                        notFound = false;
     54                        break;
     55                    }
     56                }
     57                if (notFound) {
     58                    continue;
     59                }
     60            }
    4661            return false;
    4762        }
     
    6883                }
    6984                else {
    70                     stmt = assign->replaceWith(assign->getExpression());
     85                    stmt = assign->replaceWith(assign->getExpression(), true, true);
    7186                }
    7287                continue;
Note: See TracChangeset for help on using the changeset viewer.