@@ -48,8 +48,7 @@ const IR::Node* ExpressionConverter::postorder(IR::Mask* expression) {
48
48
return exp ;
49
49
if (value != range.value )
50
50
return new IR::BAnd (expression->srcInfo , exp , cst);
51
- return new IR::Slice (Util::SourceInfo (), exp ,
52
- new IR::Constant (range.highIndex ), new IR::Constant (range.lowIndex ));
51
+ return new IR::Slice (exp , new IR::Constant (range.highIndex ), new IR::Constant (range.lowIndex ));
53
52
}
54
53
55
54
const IR::Node* ExpressionConverter::postorder (IR::Constant* expression) {
@@ -95,13 +94,11 @@ const IR::Node* ExpressionConverter::postorder(IR::Primitive* primitive) {
95
94
}
96
95
97
96
const IR::Expression* method = new IR::Member (
98
- Util::SourceInfo (),
99
97
structure->paramReference (structure->parserPacketIn ),
100
98
P4::P4CoreLibrary::instance.packetIn .lookahead .Id ());
101
99
auto typeargs = new IR::Vector<IR::Type>();
102
100
typeargs->push_back (IR::Type_Bits::get (aval + bval));
103
- auto lookahead = new IR::MethodCallExpression (
104
- Util::SourceInfo (), method, typeargs, new IR::Vector<IR::Expression>());
101
+ auto lookahead = new IR::MethodCallExpression (method, typeargs);
105
102
auto result = new IR::Slice (primitive->srcInfo , lookahead,
106
103
new IR::Constant (bval - 1 ),
107
104
new IR::Constant (0 ));
@@ -112,7 +109,7 @@ const IR::Node* ExpressionConverter::postorder(IR::Primitive* primitive) {
112
109
auto base = primitive->operands .at (0 );
113
110
auto method = new IR::Member (primitive->srcInfo , base, IR::ID (IR::Type_Header::isValid));
114
111
auto result = new IR::MethodCallExpression (primitive->srcInfo , IR::Type::Boolean::get (),
115
- method, new IR::Vector<IR::Type>(), new IR::Vector<IR::Expression>() );
112
+ method );
116
113
return result;
117
114
}
118
115
BUG (" Unexpected primitive %1%" , primitive);
@@ -145,7 +142,7 @@ const IR::Node* ExpressionConverter::postorder(IR::ConcreteHeaderRef* nhr) {
145
142
else
146
143
ref = structure->conversionContext .userMetadata ->clone ();
147
144
}
148
- auto result = new IR::Member (Util::SourceInfo (), ref, nhr->ref ->name );
145
+ auto result = new IR::Member (ref, nhr->ref ->name );
149
146
result->type = nhr->type ;
150
147
return result;
151
148
}
@@ -178,11 +175,8 @@ const IR::Node* StatementConverter::preorder(IR::Apply* apply) {
178
175
auto table = structure->tables .get (apply->name );
179
176
auto newname = structure->tables .get (table);
180
177
auto tbl = new IR::PathExpression (newname);
181
- auto method = new IR::Member (Util::SourceInfo (), tbl,
182
- IR::ID (IR::IApply::applyMethodName));
183
- auto call = new IR::MethodCallExpression (apply->srcInfo , method,
184
- structure->emptyTypeArguments ,
185
- new IR::Vector<IR::Expression>());
178
+ auto method = new IR::Member (tbl, IR::ID (IR::IApply::applyMethodName));
179
+ auto call = new IR::MethodCallExpression (apply->srcInfo , method);
186
180
if (apply->actions .size () == 0 ) {
187
181
auto stat = new IR::MethodCallStatement (apply->srcInfo , call);
188
182
prune ();
@@ -210,9 +204,9 @@ const IR::Node* StatementConverter::preorder(IR::Apply* apply) {
210
204
211
205
if (!otherLabels) {
212
206
StatementConverter conv (structure, renameMap);
213
- auto hitcase = hit ? conv.convert (hit) : new IR::EmptyStatement (Util::SourceInfo () );
207
+ auto hitcase = hit ? conv.convert (hit) : new IR::EmptyStatement ();
214
208
auto misscase = miss ? conv.convert (miss) : nullptr ;
215
- auto check = new IR::Member (Util::SourceInfo (), call, IR::Type_Table::hit);
209
+ auto check = new IR::Member (call, IR::Type_Table::hit);
216
210
auto ifstat = new IR::IfStatement (apply->srcInfo , check, hitcase, misscase);
217
211
prune ();
218
212
return ifstat;
@@ -230,7 +224,7 @@ const IR::Node* StatementConverter::preorder(IR::Apply* apply) {
230
224
stat = conv.convert (a.second ); }
231
225
const IR::Expression* destination;
232
226
if (a.first == " default" ) {
233
- destination = new IR::DefaultExpression (Util::SourceInfo () );
227
+ destination = new IR::DefaultExpression ();
234
228
} else {
235
229
cstring act_name = a.first ;
236
230
cstring full_name = table->name + ' .' + act_name;
@@ -239,7 +233,7 @@ const IR::Node* StatementConverter::preorder(IR::Apply* apply) {
239
233
destination = new IR::PathExpression (IR::ID (act_name)); }
240
234
auto swcase = new IR::SwitchCase (a.second ->srcInfo , destination, stat);
241
235
cases.insert (insert_at, swcase); }
242
- auto check = new IR::Member (Util::SourceInfo (), call, IR::Type_Table::action_run);
236
+ auto check = new IR::Member (call, IR::Type_Table::action_run);
243
237
auto sw = new IR::SwitchStatement (apply->srcInfo , check, std::move (cases));
244
238
prune ();
245
239
return sw;
@@ -252,13 +246,12 @@ const IR::Node* StatementConverter::preorder(IR::Primitive* primitive) {
252
246
if (control != nullptr ) {
253
247
auto instanceName = get (renameMap, control->name );
254
248
auto ctrl = new IR::PathExpression (IR::ID (instanceName));
255
- auto method = new IR::Member (Util::SourceInfo (), ctrl, IR::ID (IR::IApply::applyMethodName));
249
+ auto method = new IR::Member (ctrl, IR::ID (IR::IApply::applyMethodName));
256
250
auto args = new IR::Vector<IR::Expression>();
257
251
args->push_back (structure->conversionContext .header ->clone ());
258
252
args->push_back (structure->conversionContext .userMetadata ->clone ());
259
253
args->push_back (structure->conversionContext .standardMetadata ->clone ());
260
- auto call = new IR::MethodCallExpression (primitive->srcInfo , method,
261
- structure->emptyTypeArguments , args);
254
+ auto call = new IR::MethodCallExpression (primitive->srcInfo , method, args);
262
255
auto stat = new IR::MethodCallStatement (primitive->srcInfo , call);
263
256
return stat;
264
257
}
@@ -273,7 +266,7 @@ const IR::Node* StatementConverter::preorder(IR::If* cond) {
273
266
BUG_CHECK (pred != nullptr , " Expected to get an expression when converting %1%" , cond->pred );
274
267
const IR::Statement* t, *f;
275
268
if (cond->ifTrue == nullptr )
276
- t = new IR::EmptyStatement (Util::SourceInfo () );
269
+ t = new IR::EmptyStatement ();
277
270
else
278
271
t = conv.convert (cond->ifTrue );
279
272
@@ -293,7 +286,7 @@ const IR::Statement* StatementConverter::convert(const IR::Vector<IR::Expression
293
286
auto s = convert (e);
294
287
stats->push_back (s);
295
288
}
296
- auto result = new IR::BlockStatement (toConvert->srcInfo , IR::Annotations::empty, stats);
289
+ auto result = new IR::BlockStatement (toConvert->srcInfo , stats);
297
290
return result;
298
291
}
299
292
0 commit comments