P4C
The P4 Compiler
Loading...
Searching...
No Matches
removeAssertAssume.h
1
#ifndef MIDEND_REMOVEASSERTASSUME_H_
2
#define MIDEND_REMOVEASSERTASSUME_H_
3
4
#include "frontends/common/resolveReferences/resolveReferences.h"
5
#include "frontends/p4/typeChecking/typeChecker.h"
6
#include "frontends/p4/typeMap.h"
7
#include "ir/ir.h"
8
9
namespace
P4
{
10
// Removes assert and assume statements if it is not in debug mode
11
class
DoRemoveAssertAssume :
public
Transform
{
12
P4::ReferenceMap
*refMap;
13
P4::TypeMap
*typeMap;
14
15
public
:
16
explicit
DoRemoveAssertAssume(
P4::ReferenceMap
*refMap,
P4::TypeMap
*typeMap)
17
: refMap(refMap), typeMap(typeMap) {
18
CHECK_NULL(refMap);
19
CHECK_NULL(typeMap);
20
setName(
"DoRemoveAssertAssume"
);
21
}
22
23
const
IR::Node
*preorder(IR::MethodCallStatement *statement)
override
;
24
};
25
26
class
RemoveAssertAssume final :
public
PassManager {
27
public
:
28
RemoveAssertAssume(
ReferenceMap
*refMap,
TypeMap
*typeMap,
29
TypeChecking
*typeChecking =
nullptr
) {
30
if
(!typeChecking) typeChecking =
new
TypeChecking
(refMap, typeMap);
31
passes.push_back(typeChecking);
32
passes.push_back(
new
DoRemoveAssertAssume
(refMap, typeMap));
33
setName(
"RemoveAssertAssume"
);
34
}
35
};
36
37
}
// namespace P4
38
39
#endif
/* MIDEND_REMOVEASSERTASSUME_H_ */
P4::DoRemoveAssertAssume
Definition
removeAssertAssume.h:11
P4::IR::Node
Definition
node.h:95
P4::ReferenceMap
Class used to encode maps from paths to declarations.
Definition
referenceMap.h:66
P4::Transform
Definition
visitor.h:424
P4::TypeChecking
Definition
typeChecker.h:55
P4::TypeMap
Definition
typeMap.h:41
P4
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition
applyOptionsPragmas.cpp:24
midend
removeAssertAssume.h
Generated by
1.13.2