17#ifndef MIDEND_REMOVESELECTBOOLEANS_H_
18#define MIDEND_REMOVESELECTBOOLEANS_H_
20#include "frontends/common/resolveReferences/referenceMap.h"
21#include "frontends/p4/typeChecking/typeChecker.h"
22#include "frontends/p4/typeMap.h"
37 const IR::Expression *addToplevelCasts(
const IR::Expression *expression);
40 explicit DoRemoveSelectBooleans(
const P4::TypeMap *typeMap) : typeMap(typeMap) {
42 setName(
"DoRemoveSelectBooleans");
45 const IR::Node *postorder(IR::SelectExpression *expression)
override;
46 const IR::Node *postorder(IR::SelectCase *selectCase)
override;
49class RemoveSelectBooleans :
public PassManager {
53 if (!typeChecking) typeChecking =
new TypeChecking(refMap, typeMap);
54 passes.push_back(typeChecking);
57 setName(
"RemoveSelectBooleans");
Definition typeChecker.h:32
Definition removeSelectBooleans.h:34
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
Definition typeChecker.h:55
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24