|
template<typename Func > |
void | forAllChecksums (std::vector< const IR::CalculatedField * > calculated_fields, Func function) |
|
template<typename Func > |
void | forAllResidualChecksums (std::vector< const IR::CalculatedField * > calculated_fields, Func function) |
|
gress_t | getGress (cstring name) |
|
void | include (cstring filename, cstring ppoptions=cstring()) |
|
void | populateOutputNames () |
|
const IR::AssignmentStatement * | assign (Util::SourceInfo srcInfo, const IR::Expression *left, const IR::Expression *right, const IR::Type *type) |
|
virtual const IR::Expression * | convertFieldList (const IR::Expression *expression) |
|
virtual const IR::Expression * | convertHashAlgorithms (const IR::NameList *algorithm) |
|
virtual const IR::Type_Struct * | createFieldListType (const IR::Expression *expression) |
|
virtual const IR::FieldListCalculation * | getFieldListCalculation (const IR::Expression *) |
|
virtual const IR::FieldList * | getFieldLists (const IR::FieldListCalculation *flc) |
|
virtual const IR::Expression * | paramReference (const IR::Parameter *param) |
|
const IR::Statement * | sliceAssign (const IR::Primitive *prim, const IR::Expression *left, const IR::Expression *right, const IR::Expression *mask) |
|
void | tablesReferred (const IR::V1Control *control, std::vector< const IR::V1Table * > &out) |
|
bool | isHeader (const IR::ConcreteHeaderRef *nhr) const |
|
cstring | makeUniqueName (cstring base) |
|
bool | isFieldInList (cstring type, cstring field, const IR::FieldList *fl) const |
|
virtual const IR::Vector< IR::Expression > * | listIndexes (cstring type, cstring field) const |
|
const IR::Expression * | listIndex (const IR::Expression *fl) const |
|
const IR::Type * | explodeType (const std::vector< const IR::Type::Bits * > &fieldTypes) |
|
const IR::Expression * | explodeLabel (const IR::Constant *value, const IR::Constant *mask, const std::vector< const IR::Type::Bits * > &fieldTypes) |
|
void | createExterns () |
|
void | createTypes () |
|
|
std::map< cstring, BFN::LinearPath > | bridgedFieldInfo |
|
ordered_set< cstring > | bridgedFields |
|
std::map< gress_t, std::map< cstring, IR::Statement * > > | checksumDepositToHeader |
|
IR::Vector< IR::StatOrDecl > | checksumVerify |
|
std::map< unsigned long, unsigned > | cloneIndexHashes [2] |
|
std::map< cstring, std::vector< const IR::Parameter * > > | controlParams |
|
std::map< cstring, bitvec > | controlParamUse |
|
gress_t | currentGress |
|
std::map< cstring, std::map< unsigned, std::pair< std::optional< cstring >, const IR::Expression * > > > | digestFieldLists |
|
std::map< unsigned long, unsigned > | digestIndexHashes |
|
ordered_map< cstring, ordered_set< cstring > > | ingressVerifyChecksumToStates |
|
std::map< cstring, gress_t > | mapControlToGress |
|
std::map< unsigned long, unsigned > | recirculateIndexHashes |
|
assoc::map< const IR::FieldList *, cstring > | residualChecksumNames |
|
std::vector< ChecksumInfo > | residualChecksums |
|
std::map< unsigned long, unsigned > | resubmitIndexHashes |
|
std::map< cstring, const IR::Type_StructLike * > | tna_intr_md_types |
|
std::vector< ChecksumInfo > | verifyChecksums |
|
NamedObjectInfo< const IR::ActionProfile * > | action_profiles |
|
NamedObjectInfo< const IR::ActionSelector * > | action_selectors |
|
NamedObjectInfo< const IR::ActionFunction * > | actions |
|
ordered_set< const IR::FieldList * > | allFieldLists |
| Field lists that appear in the program.
|
|
std::unordered_map< cstring, int > | allNames |
|
std::vector< const IR::CalculatedField * > | calculated_fields |
|
P4::CallGraph< cstring > | calledActions |
|
P4::CallGraph< cstring > | calledControls |
|
P4::CallGraph< cstring > | calledCounters |
|
P4::CallGraph< cstring > | calledExterns |
|
P4::CallGraph< cstring > | calledMeters |
|
P4::CallGraph< cstring > | calledRegisters |
|
NamedObjectInfo< const IR::V1Control * > | controls |
|
ConversionContext * | conversionContext = nullptr |
|
std::map< cstring, const IR::Declaration_Instance * > | counterMap |
|
NamedObjectInfo< const IR::Counter * > | counters |
|
IR::Vector< IR::Node > * | declarations |
|
std::map< cstring, cstring > | directCounters |
|
std::map< cstring, const IR::Meter * > | directMeters |
| Maps table name to direct meter.
|
|
IR::Vector< IR::Type > * | emptyTypeArguments = nullptr |
|
std::map< const IR::Type_Extern *, const IR::Type_Extern * > | extern_remap |
|
NamedObjectInfo< const IR::Type_Extern * > | extern_types |
|
NamedObjectInfo< const IR::Declaration_Instance * > | externs |
|
std::map< cstring, IR::Vector< IR::Expression > > | extracts |
|
std::map< const IR::MethodCallExpression *, const IR::Type_Header * > | extractsSynthesized |
|
NamedObjectInfo< const IR::FieldListCalculation * > | field_list_calculations |
|
NamedObjectInfo< const IR::FieldList * > | field_lists |
|
cstring | fieldListsEnum |
| Name of the serializable enum that holds one id for each field list.
|
|
std::map< cstring, const IR::Type * > | finalHeaderType |
|
std::map< const IR::Node *, const IR::Declaration_Instance * > | globalInstances |
|
std::set< cstring > | headerInstances |
|
NamedObjectInfo< const IR::Header * > | headers |
|
std::set< cstring > | headerTypes |
|
std::vector< const IR::Declaration * > | localInstances |
| extra local instances to control created by primitive translation
|
|
NamedObjectInfo< const IR::HeaderOrMetadata * > | metadata |
|
std::set< cstring > | metadataInstances |
|
std::set< cstring > | metadataTypes |
|
std::map< const IR::Meter *, const IR::Declaration_Instance * > | meterMap |
|
NamedObjectInfo< const IR::Meter * > | meters |
|
P4::P4CoreLibrary & | p4lib |
|
std::set< cstring > | parameterTypes |
|
std::map< cstring, const IR::ParserState * > | parserEntryPoints |
|
const IR::Parameter * | parserHeadersOut = nullptr |
|
const IR::Parameter * | parserPacketIn = nullptr |
|
P4::CallGraph< cstring > | parsers |
|
NamedObjectInfo< const IR::V1Parser * > | parserStates |
|
std::map< cstring, cstring > | registerLayoutType |
|
NamedObjectInfo< const IR::Register * > | registers |
|
NamedObjectInfo< const IR::HeaderStack * > | stacks |
|
std::map< const IR::V1Table *, const IR::Apply * > | tableInvocation |
|
std::map< const IR::V1Table *, const IR::V1Control * > | tableMapping |
|
NamedObjectInfo< const IR::V1Table * > | tables |
|
NamedObjectInfo< const IR::Type_StructLike * > | types |
|
P4V1::V1Model & | v1model |
|
NamedObjectInfo< const IR::ParserValueSet * > | value_sets |
|
std::set< cstring > | value_sets_implemented |
|
const IR::V1Control * | ingress |
|
IR::ID | ingressReference |
|
const IR::P4Control * | verifyChecksums |
|
const IR::P4Control * | updateChecksums |
|
const IR::P4Control * | deparser |
|
const IR::Expression * | latest |
| Represents 'latest' P4-14 construct.
|
|
const int | defaultRegisterWidth = 32 |
|
|
virtual const IR::Statement * | convertPrimitive (const IR::Primitive *primitive) |
|
virtual const IR::Statement * | convertParserStatement (const IR::Expression *expr) |
|
virtual const IR::P4Action * | convertAction (const IR::ActionFunction *action, cstring newName, const IR::Meter *meterToAccess, cstring counterToAccess) |
|
const IR::PathExpression * | getState (IR::ID dest) |
|
virtual void | createChecksumVerifications () |
|
virtual void | createChecksumUpdates () |
|
virtual void | createStructures () |
|
virtual cstring | createType (const IR::Type_StructLike *type, bool header, std::unordered_set< const IR::Type * > *converted) |
|
virtual void | createControls () |
|
void | createDeparserInternal (IR::ID deparserId, IR::Parameter *packetOut, IR::Parameter *headers, std::vector< IR::Parameter * >, IR::IndexedVector< IR::Declaration > controlLocals, std::function< IR::BlockStatement *(IR::BlockStatement *)>) |
|
static const IR::Annotations * | addNameAnnotation (cstring name, const IR::Annotations *annos=nullptr) |
|
static const IR::Annotations * | addGlobalNameAnnotation (cstring name, const IR::Annotations *annos=nullptr) |
|
Extend P4V1::ProgramStructure with TNA-specific info