17#ifndef MIDEND_SIMPLIFYSELECTCASES_H_
18#define MIDEND_SIMPLIFYSELECTCASES_H_
20#include "frontends/p4/typeChecking/typeChecker.h"
40 bool requireConstants;
42 void checkSimpleConstant(
const IR::Expression *expr)
const;
45 DoSimplifySelectCases(
const TypeMap *typeMap,
bool requireConstants)
46 : typeMap(typeMap), requireConstants(requireConstants) {
47 setName(
"DoSimplifySelectCases");
49 const IR::Node *preorder(IR::SelectExpression *expression)
override;
52class SimplifySelectCases :
public PassManager {
56 if (!typeChecking) typeChecking =
new TypeChecking(refMap, typeMap);
57 passes.push_back(typeChecking);
59 setName(
"SimplifySelectCases");
Definition simplifySelectCases.h:38
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