P4C
The P4 Compiler
Loading...
Searching...
No Matches
orderArguments.h
1
/*
2
* Copyright 2018 VMware, Inc.
3
* SPDX-FileCopyrightText: 2018 VMware, Inc.
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef MIDEND_ORDERARGUMENTS_H_
9
#define MIDEND_ORDERARGUMENTS_H_
10
11
#include "frontends/common/resolveReferences/resolveReferences.h"
12
#include "frontends/p4/typeChecking/typeChecker.h"
13
#include "frontends/p4/typeMap.h"
14
#include "ir/ir.h"
15
16
namespace
P4
{
17
22
class
DoOrderArguments :
public
Transform
,
public
ResolutionContext {
23
TypeMap
*typeMap;
24
25
public
:
26
explicit
DoOrderArguments(
TypeMap
*typeMap) : typeMap(typeMap) {
27
CHECK_NULL(typeMap);
28
setName(
"DoOrderArguments"
);
29
}
30
31
const
IR::Node
*postorder(IR::MethodCallExpression *expression)
override
;
32
const
IR::Node
*postorder(IR::ConstructorCallExpression *expression)
override
;
33
const
IR::Node
*postorder(IR::Declaration_Instance *instance)
override
;
34
};
35
36
class
OrderArguments :
public
PassManager {
37
public
:
38
explicit
OrderArguments(
TypeMap
*typeMap,
TypeChecking
*typeChecking =
nullptr
) {
39
if
(!typeChecking) typeChecking =
new
TypeChecking
(
nullptr
, typeMap);
40
passes.push_back(typeChecking);
41
passes.push_back(
new
DoOrderArguments
(typeMap));
42
setName(
"OrderArguments"
);
43
}
44
};
45
46
}
// namespace P4
47
48
#endif
/* MIDEND_ORDERARGUMENTS_H_ */
P4::DoOrderArguments
Definition
orderArguments.h:22
P4::IR::Node
Definition
node.h:53
P4::Transform
Definition
visitor.h:442
P4::TypeChecking
Definition
typeChecker.h:55
P4::TypeMap
Definition
typeMap.h:32
P4
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition
applyOptionsPragmas.cpp:13
midend
orderArguments.h
Generated by
1.13.2