48class SimplifyExternMethodCalls :
public Transform,
public ResolutionContext {
53 std::vector<const IR::Declaration_Variable *> newTemps;
54 std::vector<const IR::AssignmentStatement *> newCopies;
61 void end_apply()
override {
62 BUG_CHECK(newTemps.empty() && newCopies.empty(),
63 "Not all newly created statements found a home");
66 const IR::Expression *preorder(IR::MethodCallExpression *mce)
override;
67 const IR::Node *postorder(IR::Statement *stmt)
override;
68 const IR::BlockStatement *postorder(IR::BlockStatement *block)
override;
71 const IR::P4Parser *preorder(IR::P4Parser *p)
override {
77 explicit SimplifyExternMethodCalls(
TypeMap *tm) : typeMap(tm) {}
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24