update isl to version 0.23
[pet.git] / substituter.h
blob5aa5624dbe0f7cc8f3b05ae6fe100e8c88ac70f8
1 #ifndef PET_SUBSTITUTER_H
2 #define PET_SUBSTITUTER_H
4 #include <map>
6 #include "expr.h"
7 #include "tree.h"
9 /* Keep track of substitutions that need to be performed in "subs",
10 * where the isl_id is replaced by the pet_expr, which is either
11 * an access expression or the address of an access expression.
12 * "substitute" performs the actual substitution.
14 struct pet_substituter {
15 std::map<isl_id *, pet_expr *> subs;
17 void add_sub(__isl_take isl_id *id, __isl_take pet_expr *expr);
19 __isl_give pet_expr *substitute(__isl_take pet_expr *expr);
20 __isl_give pet_tree *substitute(__isl_take pet_tree *tree);
22 ~pet_substituter();
25 #endif