28class DontcareArgs :
public Transform,
public ResolutionContext {
34 explicit DontcareArgs(
TypeMap *typeMap) : typeMap(typeMap) {
36 setName(
"DontcareArgs");
38 const IR::Node *postorder(IR::MethodCallExpression *expression)
override;
39 const IR::Node *postorder(IR::Function *function)
override {
41 for (
auto d : toAdd) body.push_back(d);
42 body.append(function->body->components);
44 new IR::BlockStatement(function->body->srcInfo, function->body->annotations, body);
48 const IR::Node *postorder(IR::P4Action *action)
override {
50 for (
auto d : toAdd) body.push_back(d);
51 body.append(action->body->components);
53 new IR::BlockStatement(action->body->srcInfo, action->body->annotations, body);
57 const IR::Node *postorder(IR::P4Parser *parser)
override {
58 toAdd.append(parser->parserLocals);
59 parser->parserLocals = toAdd;
63 const IR::Node *postorder(IR::P4Control *control)
override {
64 toAdd.append(control->controlLocals);
65 control->controlLocals = toAdd;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24