70 std::vector<const IR::P4Table *> tables;
74 : refMap(refMap), typeMap(typeMap) {
77 setName(
"DoMoveActionsToTables");
79 const IR::Node *preorder(IR::P4Parser *parser)
override {
83 const IR::Node *postorder(IR::P4Control *control)
override;
84 const IR::Node *preorder(IR::P4Control *control)
override {
88 const IR::Node *preorder(IR::P4Action *action)
override {
92 const IR::Node *postorder(IR::MethodCallStatement *statement)
override;
115 std::vector<const IR::P4Action *> actions;
116 bool changes =
false;
121 bool mustMove(
const IR::MethodCallStatement *statement);
122 bool mustMove(
const IR::BaseAssignmentStatement *statement);
125 : refMap(refMap), typeMap(typeMap), policy(policy) {
128 setName(
"DoSynthesizeActions");
130 const IR::Node *preorder(IR::P4Parser *parser)
override {
134 const IR::Node *postorder(IR::P4Control *control)
override;
135 const IR::Node *preorder(IR::P4Control *control)
override;
136 const IR::Node *preorder(IR::P4Action *action)
override {
141 const IR::Node *preorder(IR::BlockStatement *statement)
override;
142 const IR::Node *preorder(IR::BaseAssignmentStatement *statement)
override;
143 const IR::Node *preorder(IR::MethodCallStatement *statement)
override;
144 const IR::Node *preorder(IR::ExitStatement *statement)
override;
145 const IR::Node *preorder(IR::Function *function)
override {
151 const IR::Statement *createAction(
const IR::Statement *body);
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13