Information about the structure of a P4-14 program, used to convert it to a P4-16 program.
More...
|
const IR::AssignmentStatement * | assign (Util::SourceInfo srcInfo, const IR::Expression *left, const IR::Expression *right, const IR::Type *type) |
|
virtual const IR::Declaration_Instance * | convert (const IR::Register *reg, cstring newName, const IR::Type *regElementType=nullptr) |
|
virtual const IR::Expression * | convertFieldList (const IR::Expression *expression) |
|
virtual const IR::Expression * | convertHashAlgorithm (Util::SourceInfo srcInfo, IR::ID algorithm) |
|
virtual const IR::Expression * | convertHashAlgorithms (const IR::NameList *algorithm) |
|
virtual const IR::P4Program * | create (Util::SourceInfo info) |
|
virtual IR::Vector< IR::Argument > * | createApplyArguments (cstring n) |
|
void | createExterns () |
|
virtual const IR::Type_Struct * | createFieldListType (const IR::Expression *expression) |
|
void | createTypes () |
|
const IR::Expression * | explodeLabel (const IR::Constant *value, const IR::Constant *mask, const std::vector< const IR::Type::Bits * > &fieldTypes) |
|
const IR::Type * | explodeType (const std::vector< const IR::Type::Bits * > &fieldTypes) |
|
virtual const IR::FieldListCalculation * | getFieldListCalculation (const IR::Expression *) |
|
virtual const IR::FieldList * | getFieldLists (const IR::FieldListCalculation *flc) |
|
void | include (cstring filename, cstring ppoptions=cstring()) |
|
bool | isFieldInList (cstring type, cstring field, const IR::FieldList *fl) const |
|
bool | isHeader (const IR::ConcreteHeaderRef *nhr) const |
|
const IR::Expression * | listIndex (const IR::Expression *fl) const |
|
virtual const IR::Vector< IR::Expression > * | listIndexes (cstring type, cstring field) const |
|
virtual void | loadModel () |
|
cstring | makeUniqueName (cstring base) |
|
virtual const IR::Expression * | paramReference (const IR::Parameter *param) |
|
void | populateOutputNames () |
|
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) |
|
|
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 |
|
const int | defaultRegisterWidth = 32 |
|
const IR::P4Control * | deparser |
|
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 |
|
const IR::V1Control * | ingress |
|
IR::ID | ingressReference |
|
const IR::Expression * | latest |
| Represents 'latest' P4-14 construct.
|
|
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 |
|
const IR::P4Control * | updateChecksums |
|
P4V1::V1Model & | v1model |
|
NamedObjectInfo< const IR::ParserValueSet * > | value_sets |
|
std::set< cstring > | value_sets_implemented |
|
const IR::P4Control * | verifyChecksums |
|
|
virtual void | checkHeaderType (const IR::Type_StructLike *hrd, bool toStruct) |
|
virtual const IR::Type_Control * | controlType (IR::ID name) |
|
virtual const IR::Declaration_Instance * | convert (const IR::CounterOrMeter *cm, cstring newName) |
|
virtual const IR::P4Action * | convertAction (const IR::ActionFunction *action, cstring newName, const IR::Meter *meterToAccess, cstring counterToAccess) |
|
virtual const IR::Declaration_Instance * | convertActionProfile (const IR::ActionProfile *, cstring newName) |
|
virtual const IR::P4Control * | convertControl (const IR::V1Control *control, cstring newName) |
|
virtual const IR::Statement * | convertCounterCall (cstring counterToAccess) |
|
virtual const IR::Declaration_Instance * | convertDirectCounter (const IR::Counter *c, cstring newName) |
|
virtual const IR::Declaration_Instance * | convertDirectMeter (const IR::Meter *m, cstring newName) |
|
virtual const IR::Statement * | convertMeterCall (const IR::Meter *meterToAccess) |
|
virtual const IR::ParserState * | convertParser (const IR::V1Parser *, IR::IndexedVector< IR::Declaration > *) |
|
virtual const IR::Statement * | convertParserStatement (const IR::Expression *expr) |
|
virtual const IR::Statement * | convertPrimitive (const IR::Primitive *primitive) |
|
virtual const IR::P4Table * | convertTable (const IR::V1Table *table, cstring newName, IR::IndexedVector< IR::Declaration > &stateful, std::map< cstring, cstring > &) |
|
virtual const IR::Expression * | counterType (const IR::CounterOrMeter *cm) |
|
virtual void | createChecksumUpdates () |
|
virtual void | createChecksumVerifications () |
|
virtual void | createControls () |
|
virtual void | createDeparser () |
|
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 *)>) |
|
virtual void | createMain () |
|
virtual void | createParser () |
|
virtual void | createStructures () |
|
virtual cstring | createType (const IR::Type_StructLike *type, bool header, std::unordered_set< const IR::Type * > *converted) |
|
const IR::PathExpression * | getState (IR::ID dest) |
|
Information about the structure of a P4-14 program, used to convert it to a P4-16 program.