17#ifndef MIDEND_SIMPLIFYSELECTLIST_H_
18#define MIDEND_SIMPLIFYSELECTLIST_H_
20#include "frontends/common/resolveReferences/referenceMap.h"
21#include "frontends/p4/typeChecking/typeChecker.h"
22#include "frontends/p4/typeMap.h"
35 void explode(
const IR::Expression *expression,
const IR::Type *type,
41 setName(
"SubstituteStructures");
44 const IR::Node *postorder(IR::PathExpression *expression)
override;
70 void flatten(
const IR::Expression *expression,
unsigned *nestingIndex,
76 const IR::Node *preorder(IR::SelectExpression *expression)
override;
77 const IR::Node *preorder(IR::P4Control *control)
override {
87 if (!typeChecking) typeChecking =
new TypeChecking(refMap, typeMap);
88 passes.push_back(typeChecking);
90 passes.push_back(typeChecking);
92 setName(
"SimplifySelectList");
Definition externInstance.h:33
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
Definition simplifySelectList.h:83
Definition simplifySelectList.h:32
Definition typeChecker.h:60
Definition simplifySelectList.h:64
Definition applyOptionsPragmas.cpp:24