17#ifndef BACKENDS_BMV2_COMMON_MIDEND_H_ 
   18#define BACKENDS_BMV2_COMMON_MIDEND_H_ 
   20#include "frontends/common/options.h" 
   23#include "midend/convertEnums.h" 
   33    bool convert(
const IR::Type_Enum *type)
 const override {
 
   34        if (type->srcInfo.isValid()) {
 
   35            auto sourceFile = type->srcInfo.getSourceFile();
 
   36            if (sourceFile.endsWith(filename.string_view()))
 
   42    unsigned enumSize(
unsigned)
 const override { 
return 32; }
 
 
   55    const IR::ToplevelBlock *toplevel = 
nullptr;
 
   56    P4::ConvertEnums::EnumMapping enumMap;
 
   60        isv1 = options.
isv1();
 
   63    const IR::ToplevelBlock *process(
const IR::P4Program *&program) {
 
   64        program = program->apply(*
this);
 
 
Definition bmv2/common/midend.h:30
 
EnumOn32Bits(cstring filename)
Definition bmv2/common/midend.h:47
 
Definition bmv2/common/midend.h:50
 
P4::ReferenceMap refMap
These will be accurate when the mid-end completes evaluation.
Definition bmv2/common/midend.h:53
 
Definition frontends/common/options.h:28
 
Definition convertEnums.h:29
 
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
 
void setIsV1(bool isv1)
Set boolean indicating whether map is for a P4_14 program to isV1.
Definition referenceMap.h:105
 
bool isv1() const
True if we are compiling a P4 v1.0 or v1.1 program.
Definition parser_options.cpp:469
 
Definition pass_manager.h:38
 
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition action.cpp:21