P4C
The P4 Compiler
Loading...
Searching...
No Matches
eliminateSerEnums.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_ELIMINATESERENUMS_H_
9
#define MIDEND_ELIMINATESERENUMS_H_
10
11
#include "frontends/p4/typeChecking/typeChecker.h"
12
#include "ir/ir.h"
13
14
namespace
P4
{
15
19
class
DoEliminateSerEnums final :
public
Transform
{
20
const
TypeMap
*typeMap;
21
22
public
:
23
explicit
DoEliminateSerEnums(
const
TypeMap
*typeMap) : typeMap(typeMap) {
24
setName(
"DoEliminateSerEnums"
);
25
visitDagOnce =
false
;
26
}
27
const
IR::Node
*preorder(IR::Type_SerEnum *type)
override
;
28
const
IR::Node
*postorder(IR::Type_Name *type)
override
;
29
const
IR::Node
*postorder(IR::Member *expression)
override
;
30
};
31
32
class
EliminateSerEnums final :
public
PassManager {
33
public
:
34
explicit
EliminateSerEnums(
TypeMap
*typeMap,
TypeChecking
*typeChecking =
nullptr
) {
35
if
(!typeChecking) typeChecking =
new
TypeChecking
(
nullptr
, typeMap);
36
passes.push_back(typeChecking);
37
passes.push_back(
new
DoEliminateSerEnums
(typeMap));
38
passes.push_back(
new
ClearTypeMap
(typeMap));
39
setName(
"EliminateSerEnums"
);
40
}
41
};
42
43
}
// namespace P4
44
45
#endif
/* MIDEND_ELIMINATESERENUMS_H_ */
P4::ClearTypeMap
Definition
typeChecker.h:32
P4::DoEliminateSerEnums
Definition
eliminateSerEnums.h:19
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
eliminateSerEnums.h
Generated by
1.13.2