P4C
The P4 Compiler
Loading...
Searching...
No Matches
simplifySelectCases.h
1
/*
2
* Copyright 2016 VMware, Inc.
3
* SPDX-FileCopyrightText: 2016 VMware, Inc.
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef MIDEND_SIMPLIFYSELECTCASES_H_
9
#define MIDEND_SIMPLIFYSELECTCASES_H_
10
11
#include "frontends/p4/typeChecking/typeChecker.h"
12
#include "ir/ir.h"
13
14
namespace
P4
{
15
34
class
DoSimplifySelectCases :
public
Transform
, ResolutionContext {
35
const
TypeMap
*typeMap;
36
bool
requireConstants;
37
38
void
checkSimpleConstant(
const
IR::Expression *expr)
const
;
39
40
public
:
41
DoSimplifySelectCases(
const
TypeMap
*typeMap,
bool
requireConstants)
42
: typeMap(typeMap), requireConstants(requireConstants) {
43
setName(
"DoSimplifySelectCases"
);
44
}
45
const
IR::Node
*preorder(IR::SelectExpression *expression)
override
;
46
};
47
48
class
SimplifySelectCases :
public
PassManager {
49
public
:
50
SimplifySelectCases(
TypeMap
*typeMap,
bool
requireConstants,
51
TypeChecking
*typeChecking =
nullptr
) {
52
if
(!typeChecking) typeChecking =
new
TypeChecking
(
nullptr
, typeMap);
53
passes.push_back(typeChecking);
54
passes.push_back(
new
DoSimplifySelectCases
(typeMap, requireConstants));
55
setName(
"SimplifySelectCases"
);
56
}
57
};
58
59
}
// namespace P4
60
61
#endif
/* MIDEND_SIMPLIFYSELECTCASES_H_ */
P4::DoSimplifySelectCases
Definition
simplifySelectCases.h:34
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
simplifySelectCases.h
Generated by
1.13.2