16#ifndef BACKENDS_DPDK_DPDKUTILS_H_ 
   17#define BACKENDS_DPDK_DPDKUTILS_H_ 
   19#include "frontends/common/resolveReferences/resolveReferences.h" 
   23bool isSimpleExpression(
const IR::Expression *e);
 
   24bool isNonConstantSimpleExpression(
const IR::Expression *e);
 
   25bool isCommutativeBinaryOperation(
const IR::Operation_Binary *bin);
 
   26bool isStandardMetadata(
cstring name);
 
   27bool isMetadataStruct(
const IR::Type_Struct *st);
 
   28bool isMetadataField(
const IR::Expression *e);
 
   29bool isEightBitAligned(
const IR::Expression *e);
 
   30bool isDirection(
const IR::Member *m);
 
   31bool isHeadersStruct(
const IR::Type_Struct *st);
 
   32bool isLargeFieldOperand(
const IR::Expression *e);
 
   33bool isInsideHeader(
const IR::Expression *e);
 
   34bool isValidCall(
const IR::MethodCallExpression *m);
 
   35bool isValidMemberField(
const IR::Member *mem);
 
   37const IR::Type_Bits *getEightBitAlignedType(
const IR::Type_Bits *tb);
 
   43                                                       int indexBitWidth, 
int initValBitwidth);
 
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
 
Definition dpdk/backend.cpp:36
 
bool reservedNames(P4::ReferenceMap *refMap, const std::vector< cstring > &names, cstring &resName)
Check for reserved names for DPDK target.
Definition dpdkUtils.cpp:149
 
int getMetadataFieldWidth(int width)
Update bitwidth of Metadata fields to 32 or 64 bits if it 8-bit aligned.
Definition dpdkUtils.cpp:161
 
IR::Declaration_Instance * createRegDeclarationInstance(cstring instanceName, int regSize, int indexBitWidth, int initValBitWidth)
Creates Register extern declaration for holding persistent information.
Definition dpdkUtils.cpp:133