Skip to content

Commit 153f65a

Browse files
committed
Skip parser when --skip parser option is set in Substitution.
1 parent 108cc21 commit 153f65a

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

core/specialization/passes/substitute_expressions.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include "backends/p4tools/common/lib/logging.h"
66
#include "backends/p4tools/modules/flay/core/lib/return_macros.h"
7+
#include "backends/p4tools/modules/flay/options.h"
78
#include "ir/node.h"
89
#include "ir/vector.h"
910
#include "lib/error.h"
@@ -14,6 +15,13 @@ SubstituteExpressions::SubstituteExpressions(const P4::ReferenceMap &refMap,
1415
const AbstractSubstitutionMap &substitutionMap)
1516
: _substitutionMap(substitutionMap), _refMap(refMap) {}
1617

18+
const IR::Node *SubstituteExpressions::preorder(IR::P4Parser *parser) {
19+
if (FlayOptions::get().skipParsers()) {
20+
prune();
21+
}
22+
return parser;
23+
}
24+
1725
const IR::Node *SubstituteExpressions::preorder(IR::Declaration_Variable *declaration) {
1826
if (declaration->initializer != nullptr) {
1927
declaration->initializer =

core/specialization/passes/substitute_expressions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class SubstituteExpressions : public Transform {
2323
/// The list of eliminated and optionally replaced nodes. Used for bookkeeping.
2424
std::vector<EliminatedReplacedPair> _eliminatedNodes;
2525

26+
const IR::Node *preorder(IR::P4Parser *parser) override;
2627
const IR::Node *preorder(IR::Member *member) override;
2728
const IR::Node *preorder(IR::AssignmentStatement *statement) override;
2829
const IR::Node *preorder(IR::Declaration_Variable *declaration) override;

0 commit comments

Comments
 (0)