4 #ifndef ILANG_ILA_MNGR_U_REWRITER_H__
5 #define ILANG_ILA_MNGR_U_REWRITER_H__
45 : ila_map_(ila_map), expr_map_(expr_map) {}
91 typedef std::stack<ExprPtr> ValidCondStack;
98 ValidCondStack valid_cond_stack_;
105 #endif // ILANG_ILA_MNGR_U_REWRITER_H__
Function object for rewriting ILA tree.
Definition: u_rewriter.h:37
Expr::ExprPtr ExprPtr
Pointer type for normal use of Expr.
Definition: expr.h:138
InstrLvlAbs::InstrLvlAbsCnstPtr InstrLvlAbsCnstPtr
Pointer type for read-only usage of InstrLvlAbs.
Definition: instr_lvl_abs.h:328
FuncObjFlatIla(const InstrLvlAbsCnstPtr &top_, const IlaMap &ila_map, const ExprMap &expr_map)
Constructor.
FuncObjRewrExpr(const ExprMap &rule)
Constructor, initialize rewriting rule.
Definition: u_rewriter.h:15
bool pre(const InstrLvlAbsCnstPtr &src)
Pre-processing: create new ILA based on the given source.
bool pre(const ExprPtr &e) const
Pre-process: return true (break) if the node has been visited.
Function object for rewriting Expr.
Definition: u_rewriter.h:12
Function object for flatten ILA tree.
Definition: u_rewriter.h:64
virtual ExprPtr RewriteOp(const ExprPtr &e) const
Rewrite Operation sorted Expr.
std::map< InstrLvlAbsCnstPtr, InstrLvlAbsPtr > CnstIlaMap
Type for storing a mapping from constant ILA ptr to ILA ptr.
Definition: instr_lvl_abs.h:330
ExprMap rule_
Internal rewriting table.
Definition: u_rewriter.h:27
bool pre(const InstrLvlAbsCnstPtr &src)
Pre-processing: create new ILA based on the given source.
void post(const InstrLvlAbsCnstPtr &src) const
Nothing.
std::unordered_map< const ExprPtr, const ExprPtr, ExprHash > ExprMap
Type for mapping between Expr.
Definition: expr.h:151
InstrLvlAbs::InstrLvlAbsPtr InstrLvlAbsPtr
Pointer type for normal use of InstrLvlAbs.
Definition: instr_lvl_abs.h:326
virtual ExprPtr Rewrite(const ExprPtr &e) const
Rewrite all sorts of Expr.
void post(const ExprPtr &e)
Post-process: update the rewriting rule map.
FuncObjRewrIla(const IlaMap &ila_map, const ExprMap &expr_map)
Constructor.
Definition: u_rewriter.h:44
void post(const InstrLvlAbsCnstPtr &src)
Nothing.