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:37
IR::Declaration_Instance * createRegDeclarationInstance(cstring instanceName, int regSize, int indexBitWidth, int initValBitWidth)
Creates Register extern declaration for holding persistent information.
Definition dpdkUtils.cpp:126
int getMetadataFieldWidth(int width)
Update bitwidth of Metadata fields to 32 or 64 bits if it 8-bit aligned.
Definition dpdkUtils.cpp:155
bool reservedNames(P4::ReferenceMap *refMap, const std::vector< cstring > &names, cstring &resName)
Check for reserved names for DPDK target.
Definition dpdkUtils.cpp:143