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
14namespace P4 {
15
20class 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
31class 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_ */
Definition node.h:53
Definition uselessCasts.h:20
Definition visitor.h:442
Definition typeChecker.h:55
Definition typeMap.h:32
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13