Ignore:
Timestamp:
Sep 28, 2015, 2:39:59 PM (4 years ago)
Author:
nmedfort
Message:

Bug fixes

File:
1 edited

Legend:

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

    r4797 r4804  
    22#include <pablo/codegenstate.h>
    33#include <pablo/builder.hpp>
    4 #include <stack>
    5 #include <iostream>
    64#include <pablo/printer_pablos.h>
    75#include <cudd.h>
    8 #include <cuddInt.h>
    96#include <util.h>
    10 #include <queue>
    11 #include <boost/circular_buffer.hpp>
    127#include <pablo/optimizers/pablo_simplifier.hpp>
    138#include <pablo/analysis/pabloverifier.hpp>
     9#include <stack>
    1410
    1511using namespace llvm;
     
    117113            }
    118114        } else { // attempt to characterize this statement and replace it if we've encountered an equivalent one
     115
     116            /// TODO: I found evidence that some of the UCD functions have disjunctions of nested marker values
     117            /// in which one is a superset of the other. It's not safe to eliminate the subset marker unless the
     118            /// condition that lead us to compute the first marker is a superset of the condition that let us
     119            /// compute the subset value too. We can alter the superset condition to include the union of both
     120            /// but this may lead to taking an expensive branch more often. So, we'd need to decide whether the
     121            /// cost of each scope is close enough w.r.t. the probability both branches are taken.
     122
    119123            DdNode * bdd = nullptr;
    120124            bool test = false;
Note: See TracChangeset for help on using the changeset viewer.