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 {
42 for (
auto d : toAdd) body.push_back(d);
43 body.append(function->body->components);
45 new IR::BlockStatement(function->body->srcInfo, function->body->annotations, body);
50 const IR::Node *postorder(IR::P4Action *action)
override {
53 for (
auto d : toAdd) body.push_back(d);
54 body.append(action->body->components);
56 new IR::BlockStatement(action->body->srcInfo, action->body->annotations, body);
61 const IR::Node *postorder(IR::P4Parser *parser)
override {
63 toAdd.append(parser->parserLocals);
64 parser->parserLocals = toAdd;
69 const IR::Node *postorder(IR::P4Control *control)
override {
71 toAdd.append(control->controlLocals);
72 control->controlLocals = toAdd;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24