 Timestamp:
 Sep 14, 2016, 2:56:54 PM (3 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

icGREP/icgrepdevel/icgrep/pablo/optimizers/booleanreassociationpass.h
r5152 r5156 33 33 inline CharacterizationMap() : mPredecessor(nullptr) {} 34 34 inline CharacterizationMap(CharacterizationMap & predecessor) : mPredecessor(&predecessor) {} 35 CharacterizationMap * predecessor() const { return mPredecessor; } 35 36 private: 36 37 CharacterizationMap * const mPredecessor; … … 41 42 protected: 42 43 43 BooleanReassociationPass(Z3_context ctx, Z3_ solver solver, PabloFunction & f);44 BooleanReassociationPass(Z3_context ctx, Z3_params params, Z3_tactic tactic, PabloFunction & f); 44 45 bool processScopes(PabloFunction & function); 45 46 void processScopes(PabloBlock * const block, CharacterizationMap & map); 46 void distributeScope(PabloBlock * const block, CharacterizationMap & map);47 void distributeScope(PabloBlock * const block, CharacterizationMap & C); 47 48 48 void transformAST( PabloBlock * const block,CharacterizationMap & C, Graph & G);49 void resolveNestedUsages(Pablo Block * const block, PabloAST * const expr, const Vertex u, CharacterizationMap &C, StatementMap & S, Graph & G, const Statement * const ignoreIfThis = nullptr) const;49 void transformAST(CharacterizationMap & C, Graph & G); 50 void resolveNestedUsages(PabloAST * const expr, const Vertex u, CharacterizationMap &C, StatementMap & S, Graph & G, const Statement * const ignoreIfThis = nullptr) const; 50 51 51 bool contractGraph( StatementMap & M,Graph & G) const;52 bool contractGraph(Graph & G) const; 52 53 53 bool reduceGraph(CharacterizationMap & C, StatementMap & S, Graph & G) const; 54 bool reduceVertex(const Vertex u, CharacterizationMap & C, VertexMap & M, Graph & G, const bool use_expensive_simplification) const; 55 bool reduceGraph(CharacterizationMap & C, VertexMap & M, Graph & G) const; 54 56 55 57 bool factorGraph(const PabloAST::ClassTypeId typeId, Graph & G, std::vector<Vertex> & factors) const; … … 62 64 void removeVertex(const Vertex u, Graph & G) const; 63 65 64 bool redistributeGraph(CharacterizationMap & C, StatementMap & M, Graph & G) const;66 bool redistributeGraph(CharacterizationMap & C, VertexMap & M, Graph & G) const; 65 67 66 void rewriteAST(PabloBlock * const block, Graph & G);68 bool rewriteAST(CharacterizationMap & C, VertexMap &M, Graph & G); 67 69 68 70 Statement * characterize(Statement * const stmt, CharacterizationMap & map); 71 72 Z3_ast simplify(Z3_ast node, bool use_expensive_minimization = false) const; 69 73 70 74 Z3_ast makeVar() const; 71 75 72 76 private: 77 PabloBlock * mBlock; 73 78 Z3_context const mContext; 74 Z3_solver const mSolver; 79 Z3_params const mParams; 80 Z3_tactic const mTactic; 75 81 Z3_ast mInFile; 76 82 PabloFunction & mFunction;
Note: See TracChangeset
for help on using the changeset viewer.