69 std::map<cstring, const IR::Expression *> &vars;
75 std::map<const IR::Node *, std::map<cstring, const IR::Expression *> *> *actions;
79 bool preorder(
const IR::IfStatement *)
override;
80 bool preorder(
const IR::SwitchStatement *)
override;
81 bool preorder(
const IR::ForStatement *)
override;
82 bool preorder(
const IR::ForInStatement *)
override;
83 void postorder(
const IR::P4Control *)
override;
84 bool preorder(
const IR::P4Control *)
override;
85 bool preorder(
const IR::P4Table *)
override;
86 bool preorder(
const IR::P4Action *)
override;
87 bool preorder(
const IR::AssignmentStatement *)
override;
88 void postorder(
const IR::MethodCallExpression *)
override;
93 std::map<
const IR::Node *, std::map<cstring, const IR::Expression *> *> *acts)
96 vars(*
new std::map<cstring, const IR::Expression *>),
111 std::map<cstring, const IR::Expression *> *vars =
nullptr;
117 std::map<const IR::Node *, std::map<cstring, const IR::Expression *> *> *actions;
119 bool performRewrite =
false;
124 std::map<
const IR::Node *, std::map<cstring, const IR::Expression *> *> *acts)
125 : refMap(rM), typeMap(tM), actions(acts) {}
128 const IR::Expression *copyprop_name(
cstring name);
130 IR::IfStatement *preorder(IR::IfStatement *)
override;
131 IR::ForStatement *preorder(IR::ForStatement *)
override;
132 IR::ForInStatement *preorder(IR::ForInStatement *)
override;
133 const IR::Expression *postorder(IR::PathExpression *)
override;
134 const IR::Expression *preorder(IR::ArrayIndex *)
override;
135 const IR::Expression *preorder(IR::Member *)
override;
136 const IR::Node *preorder(IR::AssignmentStatement *)
override;
137 const IR::P4Action *preorder(IR::P4Action *)
override;
138 const IR::P4Action *postorder(IR::P4Action *)
override;
139 IR::MethodCallExpression *postorder(IR::MethodCallExpression *)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24