P4C
The P4 Compiler
Loading...
Searching...
No Matches
uselessCasts.h
1
/*
2
* Copyright 2017 VMware, Inc.
3
* SPDX-FileCopyrightText: 2017 VMware, Inc.
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef FRONTENDS_P4_USELESSCASTS_H_
9
#define FRONTENDS_P4_USELESSCASTS_H_
10
11
#include "frontends/p4/typeChecking/typeChecker.h"
12
#include "ir/ir.h"
13
14
namespace
P4
{
15
20
class
RemoveUselessCasts :
public
Transform
{
21
const
P4::TypeMap
*typeMap;
22
23
public
:
24
explicit
RemoveUselessCasts(
const
P4::TypeMap
*typeMap) : typeMap(typeMap) {
25
CHECK_NULL(typeMap);
26
setName(
"RemoveUselessCasts"
);
27
}
28
const
IR::Node
*postorder(IR::Cast *cast)
override
;
29
};
30
31
class
UselessCasts :
public
PassManager {
32
public
:
33
explicit
UselessCasts(
TypeMap
*typeMap) {
34
passes.push_back(
new
TypeChecking
(
nullptr
, typeMap));
35
passes.push_back(
new
RemoveUselessCasts
(typeMap));
36
setName(
"UselessCasts"
);
37
}
38
};
39
40
}
// namespace P4
41
42
#endif
/* FRONTENDS_P4_USELESSCASTS_H_ */
P4::IR::Node
Definition
node.h:53
P4::RemoveUselessCasts
Definition
uselessCasts.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
frontends
p4
uselessCasts.h
Generated by
1.13.2