19class DontcareArgs :
public Transform,
public ResolutionContext {
25 explicit DontcareArgs(
TypeMap *typeMap) : typeMap(typeMap) {
27 setName(
"DontcareArgs");
29 const IR::Node *postorder(IR::MethodCallExpression *expression)
override;
30 const IR::Node *postorder(IR::Function *function)
override {
33 for (
auto d : toAdd) body.push_back(d);
34 body.append(function->body->components);
36 new IR::BlockStatement(function->body->srcInfo, function->body->annotations, body);
41 const IR::Node *postorder(IR::P4Action *action)
override {
44 for (
auto d : toAdd) body.push_back(d);
45 body.append(action->body->components);
47 new IR::BlockStatement(action->body->srcInfo, action->body->annotations, body);
52 const IR::Node *postorder(IR::P4Parser *parser)
override {
54 toAdd.append(parser->parserLocals);
55 parser->parserLocals = toAdd;
60 const IR::Node *postorder(IR::P4Control *control)
override {
62 toAdd.append(control->controlLocals);
63 control->controlLocals = toAdd;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13