P4C
The P4 Compiler
Loading...
Searching...
No Matches
eliminateTypedefs.h
1
/*
2
* SPDX-FileCopyrightText: 2020 Intel Corporation
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef MIDEND_ELIMINATETYPEDEFS_H_
8
#define MIDEND_ELIMINATETYPEDEFS_H_
9
10
#include "frontends/common/resolveReferences/resolveReferences.h"
11
#include "frontends/p4/typeChecking/typeChecker.h"
12
13
namespace
P4
{
14
20
class
DoReplaceTypedef final :
public
Transform
,
public
ResolutionContext {
21
public
:
22
DoReplaceTypedef() =
default
;
23
const
IR::Type *preorder(IR::Type_Name *type)
override
;
24
};
25
26
class
EliminateTypedef final :
public
PassManager {
27
public
:
28
EliminateTypedef(
TypeMap
*typeMap,
TypeChecking
*typeChecking =
nullptr
) {
29
if
(!typeChecking) typeChecking =
new
TypeChecking
(
nullptr
, typeMap);
30
passes.push_back(typeChecking);
31
passes.push_back(
new
DoReplaceTypedef
);
32
passes.push_back(
new
TypeChecking
(
nullptr
, typeMap,
true
));
33
passes.push_back(
new
ClearTypeMap
(typeMap));
34
setName(
"EliminateTypedefs"
);
35
}
36
};
37
38
}
// namespace P4
39
40
#endif
/* MIDEND_ELIMINATETYPEDEFS_H_ */
P4::ClearTypeMap
Definition
typeChecker.h:32
P4::DoReplaceTypedef
Definition
eliminateTypedefs.h:20
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
eliminateTypedefs.h
Generated by
1.13.2