Skip to content

Commit 49e835c

Browse files
authored
Remove ReferenceMap from majority of midend passes (#4936)
* Remove refmap / typemap from ReplaceSelectRange: it does not use it at all Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Swift EliminateTypedef to ResolutionContext Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Ensure PassManager always forward proper context Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Ensure nested context is correctly propagated Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Get rid of refmap from SimplifyParsers Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Eliminate refmap in EliminateTuples Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Eliminate refmap in SimplifySelectList Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from SimplifySelectCases Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from EliminateSerEnums Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from EliminateNewtype Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from ConvertEnums Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from HandleNoMatch Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from RemoveMiss Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove more refmaps Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from TableHit Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from SimplifyKey Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from EliminateInvalidHeaders Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from OrderArguments Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Ensure Predication uses up-to-date name generator Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Remove refmap from ExpandEmit and ExpandLookahead Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Unbreak test tools Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> * Typo Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info> --------- Signed-off-by: Anton Korobeynikov <anton@korobeynikov.info>
1 parent 520b792 commit 49e835c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+452
-495
lines changed

backends/bmv2/pna_nic/midend.cpp

+22-23
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class PnaEnumOn32Bits : public P4::ChooseEnumRepresentation {
9292

9393
PnaNicMidEnd::PnaNicMidEnd(CompilerOptions &options, std::ostream *outStream)
9494
: PortableMidEnd(options) {
95-
auto convertEnums = new P4::ConvertEnums(&refMap, &typeMap, new PnaEnumOn32Bits("pna.p4"_cs));
95+
auto convertEnums = new P4::ConvertEnums(&typeMap, new PnaEnumOn32Bits("pna.p4"_cs));
9696
auto evaluator = new P4::EvaluatorPass(&refMap, &typeMap);
9797
std::function<bool(const Context *, const IR::Expression *)> policy =
9898
[=](const Context *, const IR::Expression *e) -> bool {
@@ -109,36 +109,35 @@ PnaNicMidEnd::PnaNicMidEnd(CompilerOptions &options, std::ostream *outStream)
109109
};
110110
if (BMV2::PnaNicContext::get().options().loadIRFromJson == false) {
111111
addPasses({
112-
options.ndebug ? new P4::RemoveAssertAssume(&refMap, &typeMap) : nullptr,
112+
options.ndebug ? new P4::RemoveAssertAssume(&typeMap) : nullptr,
113113
new CheckUnsupported(),
114-
new P4::RemoveMiss(&refMap, &typeMap),
115-
new P4::EliminateNewtype(&refMap, &typeMap),
116-
new P4::EliminateInvalidHeaders(&refMap, &typeMap),
117-
new P4::EliminateSerEnums(&refMap, &typeMap),
114+
new P4::RemoveMiss(&typeMap),
115+
new P4::EliminateNewtype(&typeMap),
116+
new P4::EliminateInvalidHeaders(&typeMap),
117+
new P4::EliminateSerEnums(&typeMap),
118118
convertEnums,
119119
[this, convertEnums]() { enumMap = convertEnums->getEnumMapping(); },
120-
new P4::OrderArguments(&refMap, &typeMap),
120+
new P4::OrderArguments(&typeMap),
121121
new P4::TypeChecking(&refMap, &typeMap),
122-
new P4::SimplifyKey(
123-
&refMap, &typeMap,
124-
new P4::OrPolicy(new P4::IsValid(&refMap, &typeMap), new P4::IsMask())),
122+
new P4::SimplifyKey(&typeMap,
123+
new P4::OrPolicy(new P4::IsValid(&typeMap), new P4::IsMask())),
125124
new P4::ConstantFolding(&refMap, &typeMap),
126125
new P4::StrengthReduction(&typeMap),
127-
new P4::SimplifySelectCases(&refMap, &typeMap, true), // require constant keysets
128-
new P4::ExpandLookahead(&refMap, &typeMap),
129-
new P4::ExpandEmit(&refMap, &typeMap),
130-
new P4::SimplifyParsers(&refMap),
126+
new P4::SimplifySelectCases(&typeMap, true), // require constant keysets
127+
new P4::ExpandLookahead(&typeMap),
128+
new P4::ExpandEmit(&typeMap),
129+
new P4::SimplifyParsers(),
131130
new P4::StrengthReduction(&typeMap),
132-
new P4::EliminateTuples(&refMap, &typeMap),
133-
new P4::SimplifyComparisons(&refMap, &typeMap),
131+
new P4::EliminateTuples(&typeMap),
132+
new P4::SimplifyComparisons(&typeMap),
134133
new P4::CopyStructures(&refMap, &typeMap),
135134
new P4::NestedStructs(&refMap, &typeMap),
136-
new P4::SimplifySelectList(&refMap, &typeMap),
137-
new P4::RemoveSelectBooleans(&refMap, &typeMap),
138-
new P4::FlattenHeaders(&refMap, &typeMap),
135+
new P4::SimplifySelectList(&typeMap),
136+
new P4::RemoveSelectBooleans(&typeMap),
137+
new P4::FlattenHeaders(&typeMap),
139138
new P4::FlattenInterfaceStructs(&refMap, &typeMap),
140-
new P4::ReplaceSelectRange(&refMap, &typeMap),
141-
new P4::Predication(&refMap),
139+
new P4::ReplaceSelectRange(),
140+
new P4::Predication(),
142141
new P4::MoveDeclarations(), // more may have been introduced
143142
new P4::ConstantFolding(&refMap, &typeMap),
144143
new P4::LocalCopyPropagation(&refMap, &typeMap, nullptr, policy),
@@ -150,10 +149,10 @@ PnaNicMidEnd::PnaNicMidEnd(CompilerOptions &options, std::ostream *outStream)
150149
"size"_cs}),
151150
new P4::SimplifyControlFlow(&typeMap),
152151
new P4::CompileTimeOperations(),
153-
new P4::TableHit(&refMap, &typeMap),
152+
new P4::TableHit(&typeMap),
154153
new P4::EliminateSwitch(&refMap, &typeMap),
155154
new P4::MoveActionsToTables(&refMap, &typeMap),
156-
new P4::RemoveLeftSlices(&refMap, &typeMap),
155+
new P4::RemoveLeftSlices(&typeMap),
157156
new P4::TypeChecking(&refMap, &typeMap),
158157
new P4::MidEndLast(),
159158
evaluator,

backends/bmv2/psa_switch/midend.cpp

+22-23
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class PsaEnumOn32Bits : public P4::ChooseEnumRepresentation {
9292

9393
PsaSwitchMidEnd::PsaSwitchMidEnd(CompilerOptions &options, std::ostream *outStream)
9494
: PortableMidEnd(options) {
95-
auto convertEnums = new P4::ConvertEnums(&refMap, &typeMap, new PsaEnumOn32Bits("psa.p4"_cs));
95+
auto convertEnums = new P4::ConvertEnums(&typeMap, new PsaEnumOn32Bits("psa.p4"_cs));
9696
auto evaluator = new P4::EvaluatorPass(&refMap, &typeMap);
9797
std::function<bool(const Context *, const IR::Expression *)> policy =
9898
[=](const Context *, const IR::Expression *e) -> bool {
@@ -109,36 +109,35 @@ PsaSwitchMidEnd::PsaSwitchMidEnd(CompilerOptions &options, std::ostream *outStre
109109
};
110110
if (BMV2::PsaSwitchContext::get().options().loadIRFromJson == false) {
111111
addPasses({
112-
options.ndebug ? new P4::RemoveAssertAssume(&refMap, &typeMap) : nullptr,
112+
options.ndebug ? new P4::RemoveAssertAssume(&typeMap) : nullptr,
113113
new CheckUnsupported(),
114-
new P4::RemoveMiss(&refMap, &typeMap),
115-
new P4::EliminateNewtype(&refMap, &typeMap),
116-
new P4::EliminateInvalidHeaders(&refMap, &typeMap),
117-
new P4::EliminateSerEnums(&refMap, &typeMap),
114+
new P4::RemoveMiss(&typeMap),
115+
new P4::EliminateNewtype(&typeMap),
116+
new P4::EliminateInvalidHeaders(&typeMap),
117+
new P4::EliminateSerEnums(&typeMap),
118118
convertEnums,
119119
[this, convertEnums]() { enumMap = convertEnums->getEnumMapping(); },
120-
new P4::OrderArguments(&refMap, &typeMap),
120+
new P4::OrderArguments(&typeMap),
121121
new P4::TypeChecking(&refMap, &typeMap),
122-
new P4::SimplifyKey(
123-
&refMap, &typeMap,
124-
new P4::OrPolicy(new P4::IsValid(&refMap, &typeMap), new P4::IsMask())),
122+
new P4::SimplifyKey(&typeMap,
123+
new P4::OrPolicy(new P4::IsValid(&typeMap), new P4::IsMask())),
125124
new P4::ConstantFolding(&refMap, &typeMap),
126125
new P4::StrengthReduction(&typeMap),
127-
new P4::SimplifySelectCases(&refMap, &typeMap, true), // require constant keysets
128-
new P4::ExpandLookahead(&refMap, &typeMap),
129-
new P4::ExpandEmit(&refMap, &typeMap),
130-
new P4::SimplifyParsers(&refMap),
126+
new P4::SimplifySelectCases(&typeMap, true), // require constant keysets
127+
new P4::ExpandLookahead(&typeMap),
128+
new P4::ExpandEmit(&typeMap),
129+
new P4::SimplifyParsers(),
131130
new P4::StrengthReduction(&typeMap),
132-
new P4::EliminateTuples(&refMap, &typeMap),
133-
new P4::SimplifyComparisons(&refMap, &typeMap),
131+
new P4::EliminateTuples(&typeMap),
132+
new P4::SimplifyComparisons(&typeMap),
134133
new P4::CopyStructures(&refMap, &typeMap),
135134
new P4::NestedStructs(&refMap, &typeMap),
136-
new P4::SimplifySelectList(&refMap, &typeMap),
137-
new P4::RemoveSelectBooleans(&refMap, &typeMap),
138-
new P4::FlattenHeaders(&refMap, &typeMap),
135+
new P4::SimplifySelectList(&typeMap),
136+
new P4::RemoveSelectBooleans(&typeMap),
137+
new P4::FlattenHeaders(&typeMap),
139138
new P4::FlattenInterfaceStructs(&refMap, &typeMap),
140-
new P4::ReplaceSelectRange(&refMap, &typeMap),
141-
new P4::Predication(&refMap),
139+
new P4::ReplaceSelectRange(),
140+
new P4::Predication(),
142141
new P4::MoveDeclarations(), // more may have been introduced
143142
new P4::ConstantFolding(&refMap, &typeMap),
144143
new P4::LocalCopyPropagation(&refMap, &typeMap, nullptr, policy),
@@ -156,10 +155,10 @@ PsaSwitchMidEnd::PsaSwitchMidEnd(CompilerOptions &options, std::ostream *outStre
156155
}),
157156
new P4::SimplifyControlFlow(&typeMap),
158157
new P4::CompileTimeOperations(),
159-
new P4::TableHit(&refMap, &typeMap),
158+
new P4::TableHit(&typeMap),
160159
new P4::EliminateSwitch(&refMap, &typeMap),
161160
new P4::MoveActionsToTables(&refMap, &typeMap),
162-
new P4::RemoveLeftSlices(&refMap, &typeMap),
161+
new P4::RemoveLeftSlices(&typeMap),
163162
new P4::TypeChecking(&refMap, &typeMap),
164163
new P4::MidEndLast(),
165164
evaluator,

backends/bmv2/simple_switch/midend.cpp

+25-28
Original file line numberDiff line numberDiff line change
@@ -74,50 +74,47 @@ SimpleSwitchMidEnd::SimpleSwitchMidEnd(CompilerOptions &options, std::ostream *o
7474
: MidEnd(options) {
7575
auto *evaluator = new P4::EvaluatorPass(&refMap, &typeMap);
7676
if (!BMV2::SimpleSwitchContext::get().options().loadIRFromJson) {
77-
auto *convertEnums =
78-
new P4::ConvertEnums(&refMap, &typeMap, new EnumOn32Bits("v1model.p4"_cs));
77+
auto *convertEnums = new P4::ConvertEnums(&typeMap, new EnumOn32Bits("v1model.p4"_cs));
7978
addPasses(
80-
{options.ndebug ? new P4::RemoveAssertAssume(&refMap, &typeMap) : nullptr,
79+
{options.ndebug ? new P4::RemoveAssertAssume(&typeMap) : nullptr,
8180
new P4::CheckTableSize(),
8281
new CheckUnsupported(),
83-
new P4::RemoveMiss(&refMap, &typeMap),
84-
new P4::EliminateNewtype(&refMap, &typeMap),
85-
new P4::EliminateInvalidHeaders(&refMap, &typeMap),
86-
new P4::EliminateSerEnums(&refMap, &typeMap),
82+
new P4::RemoveMiss(&typeMap),
83+
new P4::EliminateNewtype(&typeMap),
84+
new P4::EliminateInvalidHeaders(&typeMap),
85+
new P4::EliminateSerEnums(&typeMap),
8786
convertEnums,
8887
[this, convertEnums]() { enumMap = convertEnums->getEnumMapping(); },
89-
new P4::OrderArguments(&refMap, &typeMap),
88+
new P4::OrderArguments(&typeMap),
9089
new P4::TypeChecking(&refMap, &typeMap),
91-
new P4::SimplifyKey(
92-
&refMap, &typeMap,
93-
new P4::OrPolicy(new P4::IsValid(&refMap, &typeMap), new P4::IsMask())),
90+
new P4::SimplifyKey(&typeMap,
91+
new P4::OrPolicy(new P4::IsValid(&typeMap), new P4::IsMask())),
9492
new P4::ConstantFolding(&refMap, &typeMap),
9593
new P4::StrengthReduction(&typeMap),
96-
new P4::SimplifySelectCases(&refMap, &typeMap, true), // require constant keysets
97-
new P4::ExpandLookahead(&refMap, &typeMap),
98-
new P4::ExpandEmit(&refMap, &typeMap),
99-
new P4::SimplifyParsers(&refMap),
94+
new P4::SimplifySelectCases(&typeMap, true), // require constant keysets
95+
new P4::ExpandLookahead(&typeMap),
96+
new P4::ExpandEmit(&typeMap),
97+
new P4::SimplifyParsers(),
10098
new P4::StrengthReduction(&typeMap),
101-
new P4::EliminateTuples(&refMap, &typeMap),
102-
new P4::SimplifyComparisons(&refMap, &typeMap),
99+
new P4::EliminateTuples(&typeMap),
100+
new P4::SimplifyComparisons(&typeMap),
103101
new P4::CopyStructures(&refMap, &typeMap),
104102
new P4::NestedStructs(&refMap, &typeMap),
105-
new P4::SimplifySelectList(&refMap, &typeMap),
106-
new P4::RemoveSelectBooleans(&refMap, &typeMap),
107-
new P4::FlattenHeaders(&refMap, &typeMap),
103+
new P4::SimplifySelectList(&typeMap),
104+
new P4::RemoveSelectBooleans(&typeMap),
105+
new P4::FlattenHeaders(&typeMap),
108106
new P4::FlattenInterfaceStructs(&refMap, &typeMap),
109-
new P4::ReplaceSelectRange(&refMap, &typeMap),
110-
new P4::Predication(&refMap),
107+
new P4::ReplaceSelectRange(),
108+
new P4::Predication(),
111109
new P4::MoveDeclarations(), // more may have been introduced
112110
new P4::ConstantFolding(&refMap, &typeMap),
113111
new P4::LocalCopyPropagation(&refMap, &typeMap),
114112
new PassRepeated({
115113
new P4::ConstantFolding(&refMap, &typeMap),
116114
new P4::StrengthReduction(&typeMap),
117115
}),
118-
new P4::SimplifyKey(
119-
&refMap, &typeMap,
120-
new P4::OrPolicy(new P4::IsValid(&refMap, &typeMap), new P4::IsMask())),
116+
new P4::SimplifyKey(&typeMap,
117+
new P4::OrPolicy(new P4::IsValid(&typeMap), new P4::IsMask())),
121118
new P4::MoveDeclarations(),
122119
new P4::ValidateTableProperties({
123120
"implementation"_cs,
@@ -127,11 +124,11 @@ SimpleSwitchMidEnd::SimpleSwitchMidEnd(CompilerOptions &options, std::ostream *o
127124
"support_timeout"_cs,
128125
}),
129126
new P4::SimplifyControlFlow(&typeMap),
130-
new P4::EliminateTypedef(&refMap, &typeMap),
127+
new P4::EliminateTypedef(&typeMap),
131128
new P4::CompileTimeOperations(),
132-
new P4::TableHit(&refMap, &typeMap),
129+
new P4::TableHit(&typeMap),
133130
new P4::EliminateSwitch(&refMap, &typeMap),
134-
new P4::RemoveLeftSlices(&refMap, &typeMap),
131+
new P4::RemoveLeftSlices(&typeMap),
135132
// p4c-bm removed unused action parameters. To produce a compatible
136133
// control plane API, we remove them as well for P4-14 programs.
137134
{isv1 ? new P4::RemoveUnusedActionParameters(&refMap) : nullptr},

backends/dpdk/backend.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,11 @@ void DpdkBackend::convert(const IR::ToplevelBlock *tlb) {
5454
new DpdkArchFirst(),
5555
new ValidateOperandSize(),
5656
new CollectLocalStructAndFlatten(refMap, typeMap),
57-
new P4::EliminateTypedef(refMap, typeMap),
58-
new P4::ClearTypeMap(typeMap),
57+
new P4::EliminateTypedef(typeMap),
5958
new P4::TypeChecking(refMap, typeMap),
6059
new ByteAlignment(typeMap, refMap, &structure),
61-
new P4::SimplifyKey(
62-
refMap, typeMap,
63-
new P4::OrPolicy(new P4::IsValid(refMap, typeMap), new P4::IsLikeLeftValue())),
60+
new P4::SimplifyKey(typeMap,
61+
new P4::OrPolicy(new P4::IsValid(typeMap), new P4::IsLikeLeftValue())),
6462
new P4::TypeChecking(refMap, typeMap),
6563
/// TBD: implement dpdk lowering passes instead of reusing bmv2's lowering pass.
6664
new PassRepeated({new BMV2::LowerExpressions(typeMap, DPDK_MAX_SHIFT_AMOUNT)}, 2),

backends/dpdk/midend.cpp

+24-25
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ class ErrorWidth : public P4::ChooseErrorRepresentation {
108108
};
109109

110110
DpdkMidEnd::DpdkMidEnd(CompilerOptions &options, std::ostream *outStream) {
111-
auto convertEnums = new P4::ConvertEnums(&refMap, &typeMap, new EnumOn32Bits());
112-
auto convertErrors = new P4::ConvertErrors(&refMap, &typeMap, new ErrorWidth(16));
111+
auto convertEnums = new P4::ConvertEnums(&typeMap, new EnumOn32Bits());
112+
auto convertErrors = new P4::ConvertErrors(&typeMap, new ErrorWidth(16));
113113
auto evaluator = new P4::EvaluatorPass(&refMap, &typeMap);
114114
std::function<bool(const Context *, const IR::Expression *)> policy =
115115
[=](const Context *ctx, const IR::Expression *) -> bool {
@@ -168,45 +168,44 @@ DpdkMidEnd::DpdkMidEnd(CompilerOptions &options, std::ostream *outStream) {
168168

169169
if (!DPDK::DpdkContext::get().options().loadIRFromJson) {
170170
addPasses({
171-
options.ndebug ? new P4::RemoveAssertAssume(&refMap, &typeMap) : nullptr,
172-
new P4::RemoveMiss(&refMap, &typeMap),
173-
new P4::EliminateNewtype(&refMap, &typeMap),
174-
new P4::EliminateSerEnums(&refMap, &typeMap),
175-
new P4::EliminateInvalidHeaders(&refMap, &typeMap),
171+
options.ndebug ? new P4::RemoveAssertAssume(&typeMap) : nullptr,
172+
new P4::RemoveMiss(&typeMap),
173+
new P4::EliminateNewtype(&typeMap),
174+
new P4::EliminateSerEnums(&typeMap),
175+
new P4::EliminateInvalidHeaders(&typeMap),
176176
convertEnums,
177177
new VisitFunctor([this, convertEnums]() { enumMap = convertEnums->getEnumMapping(); }),
178-
new P4::OrderArguments(&refMap, &typeMap),
178+
new P4::OrderArguments(&typeMap),
179179
new P4::TypeChecking(&refMap, &typeMap),
180180
new P4::SimplifyKey(
181-
&refMap, &typeMap,
182-
new P4::OrPolicy(new P4::IsValid(&refMap, &typeMap), new P4::IsLikeLeftValue())),
181+
&typeMap, new P4::OrPolicy(new P4::IsValid(&typeMap), new P4::IsLikeLeftValue())),
183182
new P4::RemoveExits(&typeMap),
184183
new P4::ConstantFolding(&refMap, &typeMap),
185184
new P4::StrengthReduction(&typeMap),
186-
new P4::SimplifySelectCases(&refMap, &typeMap, true),
185+
new P4::SimplifySelectCases(&typeMap, true),
187186
// The lookahead implementation in DPDK target supports only a header instance as
188187
// an operand, we do not expand headers.
189188
// Structures expanded here are then processed as base bit type in ConvertLookahead
190189
// pass in backend.
191-
new P4::ExpandLookahead(&refMap, &typeMap, nullptr, false),
192-
new P4::ExpandEmit(&refMap, &typeMap),
193-
new P4::HandleNoMatch(&refMap),
194-
new P4::SimplifyParsers(&refMap),
190+
new P4::ExpandLookahead(&typeMap, nullptr, false),
191+
new P4::ExpandEmit(&typeMap),
192+
new P4::HandleNoMatch(),
193+
new P4::SimplifyParsers(),
195194
new P4::StrengthReduction(&typeMap),
196-
new P4::EliminateTuples(&refMap, &typeMap),
197-
new P4::SimplifyComparisons(&refMap, &typeMap),
195+
new P4::EliminateTuples(&typeMap),
196+
new P4::SimplifyComparisons(&typeMap),
198197
new P4::CopyStructures(&refMap, &typeMap, false /* errorOnMethodCall */),
199198
new P4::NestedStructs(&refMap, &typeMap),
200-
new P4::SimplifySelectList(&refMap, &typeMap),
201-
new P4::RemoveSelectBooleans(&refMap, &typeMap),
202-
new P4::FlattenHeaders(&refMap, &typeMap),
199+
new P4::SimplifySelectList(&typeMap),
200+
new P4::RemoveSelectBooleans(&typeMap),
201+
new P4::FlattenHeaders(&typeMap),
203202
new P4::FlattenInterfaceStructs(&refMap, &typeMap),
204-
new P4::EliminateTypedef(&refMap, &typeMap),
203+
new P4::EliminateTypedef(&typeMap),
205204
new P4::HSIndexSimplifier(&refMap, &typeMap),
206205
new P4::ParsersUnroll(true, &refMap, &typeMap),
207206
new P4::FlattenHeaderUnion(&refMap, &typeMap),
208207
new P4::SimplifyControlFlow(&typeMap),
209-
new P4::ReplaceSelectRange(&refMap, &typeMap),
208+
new P4::ReplaceSelectRange(),
210209
new P4::MoveDeclarations(), // more may have been introduced
211210
new P4::ConstantFolding(&refMap, &typeMap),
212211
new P4::LocalCopyPropagation(&refMap, &typeMap, nullptr, policy),
@@ -219,11 +218,11 @@ DpdkMidEnd::DpdkMidEnd(CompilerOptions &options, std::ostream *outStream) {
219218
new P4::SimplifyControlFlow(&typeMap),
220219
new P4::SimplifySwitch(&typeMap),
221220
new P4::CompileTimeOperations(),
222-
new P4::TableHit(&refMap, &typeMap),
223-
new P4::RemoveLeftSlices(&refMap, &typeMap),
221+
new P4::TableHit(&typeMap),
222+
new P4::RemoveLeftSlices(&typeMap),
224223
new P4::TypeChecking(&refMap, &typeMap),
225224
convertErrors,
226-
new P4::EliminateSerEnums(&refMap, &typeMap),
225+
new P4::EliminateSerEnums(&typeMap),
227226
new P4::MidEndLast(),
228227
evaluator,
229228
new VisitFunctor([this, evaluator]() { toplevel = evaluator->getToplevelBlock(); }),

0 commit comments

Comments
 (0)