8#ifndef BACKENDS_BMV2_COMMON_MIDEND_H_
9#define BACKENDS_BMV2_COMMON_MIDEND_H_
11#include "frontends/common/options.h"
14#include "midend/convertEnums.h"
24 bool convert(
const IR::Type_Enum *type)
const override {
25 if (type->srcInfo.isValid()) {
26 auto sourceFile = type->srcInfo.getSourceFile();
27 if (sourceFile.endsWith(filename))
33 unsigned enumSize(
unsigned)
const override {
return 32; }
41class MidEnd :
public PassManager {
46 const IR::ToplevelBlock *toplevel =
nullptr;
47 P4::ConvertEnums::EnumMapping enumMap;
51 isv1 = options.isv1();
54 const IR::ToplevelBlock *process(
const IR::P4Program *&program) {
55 program = program->apply(*
this);
EnumOn32Bits(cstring filename)
Definition bmv2/common/midend.h:38
P4::ReferenceMap refMap
These will be accurate when the mid-end completes evaluation.
Definition bmv2/common/midend.h:44
Definition convertEnums.h:20
Definition frontends/common/options.h:31
Class used to encode maps from paths to declarations.
Definition referenceMap.h:67
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition action.cpp:9