79 std::vector<const IR::P4Table *> tables;
83 : refMap(refMap), typeMap(typeMap) {
86 setName(
"DoMoveActionsToTables");
88 const IR::Node *preorder(IR::P4Parser *parser)
override {
92 const IR::Node *postorder(IR::P4Control *control)
override;
93 const IR::Node *preorder(IR::P4Control *control)
override {
97 const IR::Node *preorder(IR::P4Action *action)
override {
101 const IR::Node *postorder(IR::MethodCallStatement *statement)
override;
124 std::vector<const IR::P4Action *> actions;
125 bool changes =
false;
130 bool mustMove(
const IR::MethodCallStatement *statement);
131 bool mustMove(
const IR::AssignmentStatement *statement);
134 : refMap(refMap), typeMap(typeMap), policy(policy) {
137 setName(
"DoSynthesizeActions");
139 const IR::Node *preorder(IR::P4Parser *parser)
override {
143 const IR::Node *postorder(IR::P4Control *control)
override;
144 const IR::Node *preorder(IR::P4Control *control)
override;
145 const IR::Node *preorder(IR::P4Action *action)
override {
150 const IR::Node *preorder(IR::BlockStatement *statement)
override;
151 const IR::Node *preorder(IR::AssignmentStatement *statement)
override;
152 const IR::Node *preorder(IR::MethodCallStatement *statement)
override;
153 const IR::Node *preorder(IR::ExitStatement *statement)
override;
154 const IR::Node *preorder(IR::Function *function)
override {
160 const IR::Statement *createAction(
const IR::Statement *body);
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24