Ignore:
Timestamp:
Aug 15, 2015, 7:30:14 PM (4 years ago)
Author:
nmedfort
Message:

Temporary check-in.

File:
1 edited

Legend:

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

    r4711 r4725  
    1818
    1919    using CharacterizationMap = llvm::DenseMap<const PabloAST *, DdNode *>;
    20     using StatementVector = std::vector<PabloAST *>;
     20    using Terminals = std::vector<Statement *>;
    2121
    2222    struct SubsitutionMap {
     
    4040
    4141public:
    42     static bool optimize(PabloFunction & function);
     42    static bool optimize(PabloFunction & function, const bool full = false);
    4343protected:
    44     static void promoteCrossBlockReachingDefs(const PabloFunction & function);
    45     void initialize(const PabloFunction & function);
    46     void characterizeAndEliminateLogicallyEquivalentStatements(PabloFunction & function);
    47     void characterizeAndEliminateLogicallyEquivalentStatements(PabloBlock & block, SubsitutionMap & parent);
    48     DdNode * characterizeAndEliminateLogicallyEquivalentStatements(const Statement * const stmt);
     44    void eliminateLogicallyEquivalentStatements(PabloFunction & function);
     45    void eliminateLogicallyEquivalentStatements(PabloBlock & block, SubsitutionMap & parent);
     46    DdNode * eliminateLogicallyEquivalentStatements(const Statement * const stmt);
    4947    void simplifyAST(PabloFunction & function);
    50     void simplifyAST(PabloBuilder & block);
     48    void simplifyAST(PabloBuilder & block, std::vector<Statement *> &terminals);
     49    DdNode * characterizeTerminalBddTree(PabloAST * expr);
    5150    void simplifyAST(Statement *stmt, Statement * const value, PabloBuilder & builder);
    52     PabloAST * simplifyAST(DdNode * const f, PabloBuilder & builder);
    53     PabloAST * makeCoverAST(DdNode * const f, PabloBuilder & builder);
     51    PabloAST * simplifyAST(DdNode * const f, const std::vector<PabloAST *> & variables, PabloBuilder & builder);
     52    PabloAST * makeCoverAST(DdNode * const f, const std::vector<PabloAST *> & variables, PabloBuilder & builder);
    5453private:
    5554    DdNode * Zero() const;
     
    6867    DdManager *                     mManager;
    6968    std::vector<PabloAST *>         mVariables;
    70     std::vector<const Statement *>  mPromotions;
    7169    CharacterizationMap             mCharacterizationMap;
    7270};
Note: See TracChangeset for help on using the changeset viewer.