pet_expr: avoid declarations of anonymous types in anonymous union
[pet.git] / substituter.h
blob550e79e4dc02ecac2f6d36bd41604b09a18c9f4e
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_tree *substitute(__isl_take pet_tree *tree);
21 ~pet_substituter();
24 #endif