| ►NBMV2 | TODO: this is not really specific to BMV2, it should reside somewhere else |
| CActionConverter | |
| CArithmeticFixup | |
| CBackend | Backend is a the base class for SimpleSwitchBackend and PortableSwitchBackend |
| CBMV2Options | |
| ►CCFG | |
| CDummyNode | |
| CEdge | A CFG Edge; can be an in-edge or out-edge |
| CEdgeSet | |
| CIfNode | |
| CNode | |
| CTableNode | |
| CCheckUnsupported | |
| CControlConverter | |
| CConversionContext | |
| CConvertGlobals | |
| CConvertPnaToJson | |
| CConvertPsaToJson | |
| CDeparserConverter | |
| CEnumOn32Bits | |
| CExpressionConverter | |
| CExternConverter | |
| CHeaderConverter | |
| CInspectPnaProgram | |
| CJsonObjects | |
| CLowerExpressions | This pass rewrites expressions which are not supported natively on BMv2 |
| CMatchImplementation | |
| CMidEnd | |
| CParseAnnotations | Parses BMV2-specific annotations |
| CParsePnaArchitecture | |
| CParserConverter | |
| CParseV1Architecture | |
| CPnaCodeGenerator | |
| CPnaEnumOn32Bits | |
| CPnaNicBackend | |
| CPnaNicExpressionConverter | |
| CPnaNicMidEnd | |
| CPnaNicOptions | |
| CPnaProgramStructure | |
| CPortableCodeGenerator | |
| CPortableMidEnd | |
| CPortableOptions | |
| CProcessControls | |
| CPsaCodeGenerator | |
| CPsaEnumOn32Bits | |
| CPsaSwitchBackend | |
| CPsaSwitchExpressionConverter | |
| CPsaSwitchMidEnd | |
| CPsaSwitchOptions | |
| CRemoveComplexExpressions | |
| CRenameUserMetadata | |
| CSharedActionSelectorCheck | |
| CSimpleSwitchBackend | |
| CSimpleSwitchExpressionConverter | |
| CSimpleSwitchMidEnd | |
| CSimpleSwitchOptions | |
| CSkipControls | This class implements a policy suitable for the SynthesizeActions pass |
| CTableAttributes | |
| CV1ModelProperties | |
| CV1ProgramStructure | |
| ►NDPDK | |
| CactionAttributes | |
| CAddFieldsToPseudoHeader | This pass finally adds all the collected fields to pseudo header add collected pseudo header fields into dpdk_pseudo_header_t |
| CAlignHdrMetaField | |
| CBranchingInstructionGeneration | |
| CBreakLogicalExpressionParenthesis | |
| CByteAlignment | |
| CCheckExternInvocation | Class which chooses the correct class for checking the constraints for invocations. of extern methods and functions depending on the architecture |
| CCheckPNAExternInvocation | Class for checking constraints for invocations of PNA architecture extern methods and functions |
| CCollectActionUses | |
| CCollectAddOnMissTable | |
| CCollectDirectCounterMeter | |
| CCollectErrors | |
| CCollectExternDeclaration | |
| CCollectInternetChecksumInstance | |
| CCollectIPSecInfo | |
| CCollectLocalStructAndFlatten | |
| CCollectLocalVariables | |
| CCollectMetadataHeaderInfo | |
| CCollectProgramStructure | |
| CCollectStructLocalVariables | |
| CCollectTableInfo | |
| CCollectUseDefInfo | |
| CCollectUsedMetadataField | This pass Collects all metadata struct member used in program |
| CConvertActionSelectorAndProfile | |
| CConvertBinaryOperationTo2Params | |
| CConvertInternetChecksum | |
| CConvertLogicalExpression | |
| ►CConvertLookahead | |
| CCollect | |
| CReplace | |
| CReplacementMap | |
| CConvertStatementToDpdk | |
| CConvertToDpdkArch | |
| CConvertToDpdkControl | |
| CConvertToDpdkParser | |
| CConvertToDpdkProgram | |
| CConvertToString | |
| CCopyMatchKeysToSingleStruct | |
| CCopyPropagationAndElimination | This pass identifies redundant copies/moves and eliminates them |
| CDeclarationInjector | |
| CDefActionValue | |
| CDirectionToRegRead | |
| CDismantleMuxExpressions | |
| CDpdkAddPseudoHeader | |
| CDpdkAddPseudoHeaderDecl | This pass adds a pseudo header declaration, it will be used as container of operands where dpdk instructions require it's operand to be in a header. It adds a type decl like below @__pseudo_header__ header dpdk_pseudo_header_t { } |
| CDpdkArchFirst | |
| CDpdkArchLast | |
| CDpdkAsmOptimization | |
| CDpdkBackend | |
| CDpdkContextGenerator | This pass generates context JSON into user specified file |
| CDpdkHandleIPSec | |
| CDpdkMidEnd | |
| CDpdkOptions | |
| CElimHeaderCopy | |
| CEliminateHeaderCopy | |
| CEliminateUnusedAction | |
| CElimUnusedActions | |
| CEmitDpdkTableConfig | |
| CEnumOn32Bits | |
| CErrorWidth | |
| CExpressionUnroll | |
| CexternAttributes | |
| CfieldInfo | |
| CHaveNonHeaderChecksumArgs | |
| CHaveNonHeaderLargeOperandAssignment | This pass checks whether an assignment statement has large operands (>64-bit) |
| CIfStatementUnroll | |
| CInjectFixedMetadataField | |
| CInjectInternetChecksumIntermediateValue | |
| CInjectJumboStruct | |
| CInsertReqDeclForIPSec | |
| CIsDirectionMetadataUsed | |
| CkeyElementInfo | |
| CkeyInfo | |
| CLogicalExpressionUnroll | |
| CMoveCollectedStructLocalVariableToMetadata | |
| CMoveNonHeaderFieldsToPseudoHeader | This pass identifies and collects statement which requires it's operand to be in a header and also initialize added header fields with original operand. i.e. csum_0.add<tuple_0>((tuple_0){f0 = m.Ingress_tmp_1,f1 = m.Ingress_tmp_2, f2 = m.Ingress_tmp_3,f3 = m.Ingress_tmp_4,f4 = m.Ingress_tmp_5}); transformed into h.dpdk_pseudo_header.pseudo = (bit<16>)m.Ingress_tmp_1; h.dpdk_pseudo_header.pseudo_0 = (bit<16>)m.Ingress_tmp_2; h.dpdk_pseudo_header.pseudo_1 = (bit<8>)m.Ingress_tmp_3; h.dpdk_pseudo_header.pseudo_2 = (bit<32>)m.Ingress_tmp_4; h.dpdk_pseudo_header.pseudo_3 = (bit<32>)m.Ingress_tmp_5; csum_0.add<tuple_1>((tuple_1){f0 = h.dpdk_pseudo_header.pseudo, f1 = h.dpdk_pseudo_header.pseudo_0,f2 = h.dpdk_pseudo_header.pseudo_1, f3 = h.dpdk_pseudo_header.pseudo_2,f4 = h.dpdk_pseudo_header.pseudo_3}); |
| CPrependPassRecircId | |
| CPrependPDotToActionArgs | |
| CProcessControls | Only simplify complex expression in ingress/egress |
| CRemoveConsecutiveJmpAndLabel | |
| CRemoveLabelAfterLabel | |
| CRemoveRedundantLabel | This pass removes label that no jmps jump to |
| CRemoveUnusedMetadataFields | This pass removes all unused fields from metadata struct |
| CReplaceHdrMetaField | |
| CSelectionTable | Selection table attributes |
| CShortenTokenLength | This pass shorten the Identifier length |
| CSplitActionProfileTable | |
| CSplitActionSelectorTable | |
| CSplitP4TableCommon | |
| CStatementUnroll | |
| CSwapSimpleExpressionToFrontOfLogicalExpression | |
| CSwitchHandler | |
| CTableAttributes | |
| CTdiBfrtConf | |
| CThreadJumps | |
| CTopLevelCtxt | Program level information for context json |
| CTypeWidthValidator | |
| CUpdateActionForSwitch | |
| CValidateAddOnMissExterns | |
| CValidateDirectCounterMeter | |
| CValidateOperandSize | |
| ►NEBPF | |
| CActionTranslationVisitor | |
| CActionTranslationVisitorPSA | |
| CBccTarget | Represents a target compiled by bcc that uses the TC |
| CCodeBuilder | |
| CCodeGenInspector | |
| CControlBodyTranslator | |
| CControlBodyTranslatorPSA | |
| CConvertToEBPFControlPSA | |
| CConvertToEBPFDeparserPSA | |
| CConvertToEBPFParserPSA | |
| CConvertToEbpfPipeline | |
| CConvertToEbpfPSA | |
| CCounterArray_Model | |
| CCRC16ChecksumAlgorithm | |
| CCRC32ChecksumAlgorithm | |
| CCRCChecksumAlgorithm | |
| CDeparserBodyTranslator | This translator emits deparser externs |
| CDeparserBodyTranslatorPSA | |
| CDeparserHdrEmitTranslator | This translator emits headers |
| CDeparserPrepareBufferTranslator | This translator emits buffer preparation (eg. which headers will be emitted) |
| CEBPFActionProfilePSA | |
| CEBPFActionSelectorPSA | |
| CEBPFBoolType | |
| CEBPFChecksumPSA | |
| CEbpfCodeGenerator | |
| CEBPFControl | |
| CEBPFControlPSA | |
| CEBPFCounterPSA | |
| CEBPFCounterTable | |
| CEBPFDeparser | |
| CEBPFDeparserPSA | |
| CEBPFDigestPSA | |
| CEBPFDigestPSAValueVisitor | |
| CEBPFEgressPipeline | |
| CEBPFEnumType | |
| CEBPFErrorType | |
| CEBPFHashAlgorithmPSA | |
| CEBPFHashAlgorithmTypeFactoryPSA | |
| CEBPFHashPSA | |
| CEBPFIngressPipeline | |
| CEBPFInitializerUtils | |
| CEBPFInternetChecksumPSA | |
| CEBPFMeterPSA | |
| CEBPFMethodDeclaration | Methods are function signatures |
| CEBPFModel | Keep this in sync with ebpf_model.p4 and xdp_model.p4 |
| CEBPFObject | Base class for EBPF objects |
| CEBPFParser | |
| CEBPFParserState | |
| CEBPFPipeline | EBPFPipeline represents a single eBPF program in the TC/XDP hook |
| CEBPFProgram | |
| CEBPFPsaParser | |
| CEBPFRandomPSA | |
| CEBPFRegisterPSA | |
| CEBPFScalarType | |
| CEBPFStackType | |
| CEBPFStructType | Also represents headers and unions |
| CEBPFTable | |
| CEBPFTableBase | Also used to represent counters |
| CEBPFTableImplementationPSA | Base class for ActionProfile and ActionSelector |
| CEBPFTablePSA | |
| CEBPFTablePSADirectCounterPropertyVisitor | |
| CEBPFTablePSADirectMeterPropertyVisitor | |
| CEBPFTablePSAImplementationPropertyVisitor | |
| CEBPFTablePSAInitializerCodeGen | |
| CEBPFTablePsaPropertyVisitor | |
| CEBPFTablePSATernaryKeyMaskGenerator | Build mask initializer for a single table key entry |
| CEBPFTablePSATernaryTableMaskGenerator | Generate mask for whole table key |
| CEBPFType | Base class for EBPF types |
| CEBPFTypeFactory | |
| CEBPFTypeName | This should not always implement IHasWidth, but it may.. |
| CEBPFValueSet | |
| CEgressDeparserPSA | |
| CEnumOn32Bits | |
| CFilter_Model | |
| CIHasWidth | |
| CIngressDeparserPSA | |
| CInternetChecksumAlgorithm | |
| CKernelSamplesTarget | |
| CLower | |
| CLowerExpressions | This pass rewrites expressions which are not supported natively on EBPF |
| CMidEnd | |
| CP4TCTarget | |
| CPSAArchTC | |
| CPSAArchXDP | |
| CPSAEbpfGenerator | |
| CPSAErrorCodesGen | |
| CPsaStateTranslationVisitor | |
| CPSASwitchBackend | |
| CStateTranslationVisitor | |
| CTableImpl_Model | |
| CTarget | |
| CTCEgressDeparserPSA | |
| CTCEgressPipeline | |
| CTCIngressDeparserForTrafficManagerPSA | |
| CTCIngressDeparserPSA | |
| CTCIngressPipeline | |
| CTCTrafficManagerForXDP | |
| CTestTarget | |
| CXdp_Model | |
| CXDPEgressDeparserPSA | |
| CXDPEgressPipeline | |
| CXDPHelpProgram | |
| CXDPIngressDeparserPSA | |
| CXDPIngressPipeline | |
| CXdpTarget | Target XDP |
| ►Ngraphs | |
| ►CControlGraphs | |
| CControlStack | |
| CEdgeIf | |
| CEdgeSwitch | |
| CEdgeTypeIface | |
| CEdgeUnconditional | |
| CGraph_visitor | |
| ►CGraphs | |
| CGraphAttributeSetter | |
| CVertex | |
| CMidEnd | |
| COptions | |
| ►CParserGraphs | |
| CTransitionEdge | |
| ►NNetHash | A collection of hashing functions commonly used in network protocols |
| CIdentity | A class with the same signature as reflect, but just returning the data |
| CReflect | |
| ►NP4 | TODO: this is not really specific to BMV2, it should reside somewhere else |
| ►NControlPlaneAPI | TODO(antonin): High level goals of the generator go here!! |
| ►NHelpers | |
| CCounterlike | |
| CCounterlikeTraits | A traits class describing the properties of "counterlike" things |
| CCounterlikeTraits< Standard::CounterExtern< Standard::Arch::PNA > > | CounterlikeTraits<> specialization for CounterExtern for PNA |
| CCounterlikeTraits< Standard::CounterExtern< Standard::Arch::PSA > > | CounterlikeTraits<> specialization for CounterExtern for PSA |
| CCounterlikeTraits< Standard::CounterExtern< Standard::Arch::V1MODEL > > | CounterlikeTraits<> specialization for CounterExtern for v1model |
| CCounterlikeTraits< Standard::CounterExtern< Standard::Arch::V1MODEL2020 > > | |
| CCounterlikeTraits< Standard::MeterExtern< Standard::Arch::PNA > > | CounterlikeTraits<> specialization for MeterExtern for PNA |
| CCounterlikeTraits< Standard::MeterExtern< Standard::Arch::PSA > > | CounterlikeTraits<> specialization for MeterExtern for PSA |
| CCounterlikeTraits< Standard::MeterExtern< Standard::Arch::V1MODEL > > | CounterlikeTraits<> specialization for MeterExtern for v1model |
| CCounterlikeTraits< Standard::MeterExtern< Standard::Arch::V1MODEL2020 > > | |
| ►NStandard | Declarations specific to standard architectures (v1model & PSA) |
| CActionProfile | |
| CActionProfileTraits | |
| CActionProfileTraits< Arch::PNA > | |
| CActionProfileTraits< Arch::PSA > | |
| CActionProfileTraits< Arch::V1MODEL > | |
| CActionProfileTraits< Arch::V1MODEL2020 > | |
| CActionSelector | |
| CActionSelectorTraits | |
| CActionSelectorTraits< Arch::PNA > | |
| CActionSelectorTraits< Arch::PSA > | |
| CActionSelectorTraits< Arch::V1MODEL > | |
| CActionSelectorTraits< Arch::V1MODEL2020 > | |
| CBFRuntimeArchHandler | |
| CBFRuntimeArchHandlerPNA | |
| CBFRuntimeArchHandlerPSA | |
| CCounterExtern | |
| CDigest | |
| CMeterExtern | |
| CP4RuntimeArchHandlerCommon | |
| CP4RuntimeArchHandlerPNA | |
| CP4RuntimeArchHandlerPSA | |
| CP4RuntimeArchHandlerPSAPNA | |
| CP4RuntimeArchHandlerUBPF | |
| CP4RuntimeArchHandlerV1Model | |
| CPNAArchHandlerBuilder | The architecture handler builder implementation for PNA |
| CPNAArchHandlerBuilderForDPDK | The architecture handler builder implementation for PNA |
| CPSAArchHandlerBuilder | The architecture handler builder implementation for PSA |
| CPSAArchHandlerBuilderForDPDK | The architecture handler builder implementation for PSA |
| CRegister | |
| CRegisterTraits | Traits for the register extern, must be specialized for v1model and PSA |
| CRegisterTraits< Arch::PNA > | |
| CRegisterTraits< Arch::PSA > | |
| CRegisterTraits< Arch::V1MODEL > | |
| CRegisterTraits< Arch::V1MODEL2020 > | |
| CSymbolType | |
| CSymbolTypeDPDK | Extends P4RuntimeSymbolType for the DPDK extern types |
| CUBPFArchHandlerBuilder | The architecture handler builder implementation for UBPF |
| CV1ModelArchHandlerBuilder | The architecture handler builder implementation for v1model |
| CActionRef | |
| CControllerType | See section "User-defined types" in P4RT specification |
| CDefaultAction | The information about a default action which is needed to serialize it |
| CFieldIdAllocator | |
| CFlattenHeader | Flattens a header type "locally", without modifying the IR |
| CMatchField | The information about a match field which is needed to serialize it |
| CP4InfoMaps | |
| CP4RuntimeAnalyzer | |
| CP4RuntimeArchHandlerBuilderIface | |
| CP4RuntimeArchHandlerIface | |
| CP4RuntimeEntriesConverter | |
| CP4RuntimeSymbolTable | |
| CP4RuntimeSymbolTableIface | |
| CP4RuntimeSymbolType | |
| CP4SymbolSuffixSet | |
| CParseP4RuntimeAnnotations | Parses P4Runtime-specific annotations |
| CTranslationAnnotation | Payload of @p4runtime_translation annotation |
| CTypeSpecConverter | Generates the appropriate p4.P4DataTypeSpec for a given IR::Type node |
| ►NCoverage | |
| CCollectNodes | |
| CCoverageOptions | Specifies general options and which IR nodes to track with this particular visitor |
| CSourceIdCmp | Utility function to compare IR nodes in a set. We use their source info |
| Nliterals | |
| CAbstractInliner | |
| CAbstractParserDriver | |
| CActionCall | |
| CActionInvocation | |
| CActionReplacement | |
| CActionsInliner | |
| CActionSynthesisPolicy | |
| CAddMissingIdAnnotations | |
| CAllDefinitions | |
| CAnalyzeParser | |
| CAnnotationSelectionPolicy | |
| CAnyElement | |
| CApplyMethod | |
| CApplyOptionsPragmas | |
| CApplyTypesToExpressions | |
| CArrayLocation | |
| CBaseLocation | |
| CBinaryConstraint | Base class for EqualityConstraint and CanBeImplicitlyCastConstraint |
| CBindTypeVariables | |
| CBuildResourceMap | |
| CBuiltInMethod | |
| ►CCallGraph | |
| CLoop | |
| CLoops | |
| CsccInfo | |
| CCallInfo | Describes information about a caller-callee pair |
| CCanBeImplicitlyCastConstraint | The right type can be implicitly cast to the left type |
| CCastBooleanTableKeys | |
| CCheckConstants | |
| CCheckCoreMethods | |
| CCheckExternInvocationCommon | Base class which can be used to prepare classes for checking constraints for invocations of externs (both methods and pure functions) in parsers and control blocks |
| CCheckNamedArgs | |
| CCheckTableSize | Checks some possible misuses of the table size property |
| CChooseEnumRepresentation | |
| CChooseErrorRepresentation | |
| CClearTypeMap | |
| CCloneConstants | |
| CCloneExpressions | |
| CCloneVariableDeclarations | |
| CCompileTimeOperations | |
| ►CComplexValues | |
| CComponent | |
| CFieldsMap | |
| CFinalName | |
| ►CComputeDefUse | Compute defuse info within P4Parser and P4Control blocks in the midend |
| Cloc_t | |
| CSetupJoinPoints | |
| CComputeParserCG | Builds a CallGraph of ParserState nodes |
| CComputeWriteSet | |
| CConstantFolding | |
| CConstantFoldingPolicy | |
| CConstantTypeSubstitution | |
| CConstructorCall | |
| CContainerConstructorCall | |
| CContainsType | |
| CControlInstantiation | |
| CConvertEnums | |
| CConvertErrors | |
| CCopySrcInfo | |
| CCopyStructures | |
| CCreateBuiltins | |
| CCreateSpecializedTypes | |
| CCreateStructInitializers | Converts some list expressions into struct initializers |
| CDeclarationLookup | |
| CDefaultArguments | |
| CDefaultValues | |
| CDefinitions | List of definers for each base storage (at a specific program point) |
| CDeprecated | |
| CDiagnosticCountInfo | |
| CDiagnosticCountInfoGuard | |
| CDiagnosticCountInfoState | |
| ►CDirectMeterMap | |
| CDirectMeterInfo | |
| CDiscoverActionsInlining | |
| CDiscoverFunctionsInlining | |
| CDiscoverInlining | Must be run after an evaluator; uses the blocks to discover caller/callee relationships |
| CDiscoverStructure | |
| CDoBindTypeVariables | |
| CDoCheckConstants | |
| CDoCheckCoreMethods | Check types for arguments of core.p4 methods |
| CDoConstantFolding | Statically evaluates many constant expressions |
| CDoConvertEnums | |
| CDoConvertErrors | |
| CDoCopyStructures | |
| CDoDefaultArguments | |
| CDoDefaultValues | |
| CDoEliminateInvalidHeaders | |
| CDoEliminateSerEnums | |
| CDoEliminateSwitch | |
| CDoExpandEmit | |
| CDoExpandLookahead | |
| CDoFlattenHeaderUnion | |
| CDoFlattenHeaderUnionStack | |
| CDoGlobalCopyPropagation | |
| CDoHandleNoMatch | |
| ►CDoLocalCopyPropagation | |
| CElimDead | |
| CRewriteTableKeys | |
| CDoMoveActionsToTables | |
| CDontcareArgs | |
| CDoOrderArguments | |
| CDoRemoveActionParameters | |
| CDoRemoveAssertAssume | |
| CDoRemoveExits | |
| CDoRemoveLeftSlices | |
| CDoRemoveMiss | |
| CDoRemoveParserControlFlow | Converts if statements in parsers into transitions |
| CDoRemoveReturns | |
| CDoRemoveSelectBooleans | |
| CDoReplaceNewtype | |
| CDoReplaceSelectRange | |
| CDoReplaceTuples | |
| CDoReplaceTypedef | |
| CDoResetHeaders | Explicitly invalidate uninitialized header variables |
| CDoSetHeaders | |
| CDoSimplifyControlFlow | Replace complex control flow nodes with simpler ones where possible |
| CDoSimplifyDefUse | |
| CDoSimplifyExpressions | Convert expressions so that each expression contains at most one side effect |
| CDoSimplifyKey | |
| CDoSimplifyParsers | Remove unreachable parser states, and collapse simple chains of states |
| CDoSimplifySelectCases | |
| CDoSimplifySwitch | Simplify select and switch statements that have constant arguments |
| ►CDoSingleArgumentSelect | |
| CPair | A pair of expression representing an expression and a mask |
| CDoStaticAssert | |
| CDoStrengthReduction | |
| CDoSynthesizeActions | |
| CDoTableHit | |
| CDoTableKeyNames | |
| CDuplicateActions | |
| CEliminateInvalidHeaders | |
| CEliminateNewtype | |
| CEliminateSerEnums | |
| CEliminateSubparserCalls | |
| CEliminateSwitch | |
| CEliminateTuples | |
| CEliminateTypedef | |
| CEntryPriorities | Assigns priorities to table entries if they are not 'const' |
| CEnumInstance | |
| CEnumOn32Bits | |
| CEnumRepresentation | |
| CEqualityConstraint | Requires two types to be equal |
| CEvaluator | |
| CEvaluatorPass | |
| CExpandEmit | |
| CExpandLookahead | |
| CExplain | Creates a string that describes the values of current type variables |
| CExpressionEvaluator | |
| CExternConstructorCall | |
| CExternFunction | |
| CExternInstance | |
| CExternInstantiation | |
| CExternMethod | |
| CFillEnumMap | |
| CFindActionParameters | |
| CFindFunctionSpecializations | |
| CFindGlobalActionUses | |
| CFindHeaderTypesToReplace | |
| CFindParameters | Finds parameters for actions that will be given unique names |
| CFindRedundantParsers | |
| CFindRepeatedActionUses | |
| CFindSpecializations | |
| CFindSymbols | |
| CFindTypesInLogMsgInvocationToReplace | |
| CFindTypeSpecializations | |
| CFindTypesToReplace | |
| CFindVariableValues | |
| CFlattenHeaders | |
| CFlattenHeaderUnion | |
| CFlattenInterfaceStructs | |
| CFlattenLogMsg | |
| CFrontEnd | |
| CFrontEndPolicy | |
| CFunctionCall | |
| CFunctionsInliner | |
| CFunctionSpecialization | Describes how a generic function is specialized |
| CFunctionSpecializationMap | |
| CGeneralInliner | Performs actual inlining work |
| CGlobalActionReplacements | |
| CGlobalCopyPropagation | |
| CHandleNoMatch | |
| CHandleValidityHeaderUnion | |
| CHasExits | |
| CHasTableApply | Checks to see whether an IR node includes a table.apply() sub-expression |
| CHierarchicalNames | |
| CHSIndexContretizer | |
| CHSIndexFinder | |
| CHSIndexSimplifier | |
| CHSIndexTransform | This class substitutes index of a header stack in all occurences of found header stack |
| CIfInParser | Detect whether the program contains an 'if' statement in a parser |
| CIHasBlock | |
| CIndexedLocation | Interface for locations that support an index operation |
| CInline | |
| CInlineActions | |
| CInlineDriver | |
| CInlineFunctions | |
| CInlineList | |
| CInlinePass | Performs one round of inlining bottoms-up |
| ►CInlineSummary | Summarizes all inline operations to be performed |
| ►CPerCaller | Various substitutions that must be applied for each instance |
| Ckey_equal | |
| Ckey_hash | |
| CInspectPortableProgram | |
| CInspectPsaProgram | |
| CInstanceBase | |
| CInstantiateDirectCalls | |
| CInstantiation | Used to resolve a Declaration_Instance |
| CIOptionPragmaParser | |
| CIsLikeLeftValue | |
| CIsMask | |
| CIsNonConstantArrayIndex | |
| CIsValid | |
| CKeyIsSimple | |
| CKeyNameGenerator | |
| CKeySideEffect | |
| Cloc_t | |
| CLocalCopyPropagation | |
| CLocalizeActions | |
| CLocalizeAllActions | |
| CLocationPath | |
| CLocationSet | |
| CMethodInstance | |
| CMidEndLast | |
| CMinimalNameGenerator | |
| CMissingIdAssigner | |
| CMoveActionsToTables | |
| CMoveConstructors | |
| CMoveDeclarations | |
| CMoveInitializers | |
| CNameGenerator | |
| CNestedStructMap | |
| CNestedStructs | |
| COrderArguments | |
| COrPolicy | |
| CP4COptionPragmaParser | |
| CP4CoreLibrary | |
| CP4Exception_Model | |
| CP4ParserDriver | A ParserDriver that can parse P4-16 programs |
| CP4RuntimeAPI | |
| CP4RuntimeSerializer | Public APIs to generate P4Info message. Uses the singleton pattern |
| CPackageInstantiation | |
| CPacketIn | |
| CPacketOut | |
| CParameterSubstitution | |
| CParseAnnotationBodies | Clears a type map after calling a ParseAnnotations instance |
| CParseAnnotations | |
| CParsePortableArchitecture | |
| CParsePsaArchitecture | |
| CParserInfo | Information produced for a parser by the symbolic evaluator |
| CParserInstantiation | |
| CParserRewriter | |
| CParserStateInfo | Information produced for a parser state by the symbolic evaluator |
| CParserStructure | Information about a parser in the input program |
| CParsersUnroll | |
| CPerInstanceSubstitutions | |
| CPortableProgramStructure | |
| CPredication | |
| CProgramMap | |
| CProgramPoint | Indicates a statement in the program |
| CProgramPoints | |
| CProgramStructure | |
| CPsaProgramStructure | |
| CReadsWrites | Computes the SetOfLocations read and written by an expression |
| CReassociation | |
| CReferenceMap | Class used to encode maps from paths to declarations |
| CRemoveActionParameters | |
| CRemoveAliases | |
| CRemoveAllUnusedDeclarations | Iterates RemoveUnusedDeclarations until convergence |
| CRemoveAssertAssume | |
| CRemoveBreakContinue | |
| CRemoveComplexComparisons | |
| CRemoveComplexExpressions | |
| CRemoveComplexExpressionsPolicy | |
| CRemoveDontcareArgs | |
| CRemoveExits | |
| CRemoveGenericTypes | Removes all structs or stacks that are generic |
| CRemoveHidden | |
| CRemoveLeftSlices | |
| CRemoveMiss | |
| CRemoveModifiedValues | |
| CRemoveNestedStructs | |
| CRemoveParserControlFlow | |
| CRemoveParserIfs | |
| CRemoveRedundantParsers | |
| CRemoveReturns | |
| CRemoveSelectBooleans | |
| CRemoveUnusedActionParameters | |
| CRemoveUnusedDeclarations | Removes unused declarations |
| CRemoveUnusedHUDeclarations | |
| CRemoveUnusedPolicy | |
| CRemoveUselessCasts | |
| CRenameMap | |
| CRenameSymbols | |
| CReplaceHeaders | |
| CReplaceIndexRefs | |
| CReplaceLogMsg | |
| CReplacementMap | |
| CReplaceSelectRange | |
| CReplaceStructs | |
| CReplaceTypeUses | |
| CResetHeaders | Invokes TypeChecking followed by DoResetHeaders |
| CResolutionContext | Visitor mixin for looking up names in enclosing scopes from the Visitor::Context |
| CResolveReferences | |
| CRewriteAllParsers | |
| CSameExpression | |
| CSaturationElim | Contains utility functions for eliminating saturating arithmetic |
| CScalarValue | |
| CSerEnumInstance | |
| CSetHeaders | |
| CSetOfLocations | |
| CSideEffectOrdering | |
| CSideEffects | Determines whether an expression may have method or constructor invocations |
| CSimpleCallInfo | |
| CSimpleEnumInstance | An instance of a simple enum, e.g., X.A from enum X { A, B } |
| CSimpleInlineList | |
| CSimpleInlineWorkList | |
| CSimplifyBitwise | |
| CSimplifyComparisons | |
| CSimplifyControlFlow | |
| CSimplifyDefUse | |
| CSimplifyKey | |
| CSimplifyParsers | |
| CSimplifySelectCases | |
| CSimplifySelectList | |
| CSimplifySwitch | |
| CSingleArgumentSelect | |
| CSpecializationInfo | Describes how a parser or control is specialized |
| CSpecializationMap | Maintains a map from invocation to a SpecializationInfo object |
| CSpecialize | Specializes each Parser and Control with constant constructor arguments by substituting type arguments and constructor parameters |
| CSpecializeAll | Specializes each Parser and Control by substituting type arguments and constructor parameters |
| CSpecializeFunctions | Specializes each generic function by substituting type parameters |
| CSpecializeGenericFunctions | |
| CSpecializeGenericTypes | Specializes each generic type by substituting type parameters |
| CStackVariable | |
| CStackVariableHash | Class with hash function for StackVariable |
| CStaticAssert | |
| CStorageFactory | |
| CStorageLocation | Abstraction for something that is has a left value (variable, parameter) |
| CStorageMap | Maps a declaration to its associated storage |
| CStrengthReduction | |
| CStructInitializers | |
| CStructLocation | |
| CStructTypeReplacement | |
| CSubstituteParameters | |
| CSubstituteStructures | |
| CSwitchAddDefault | |
| CSymbolicArray | |
| CSymbolicBool | |
| CSymbolicEnum | |
| CSymbolicError | |
| CSymbolicException | |
| CSymbolicExtern | |
| CSymbolicHeader | |
| CSymbolicHeaderUnion | |
| CSymbolicInteger | |
| CSymbolicPacketIn | |
| CSymbolicStaticError | |
| CSymbolicStruct | |
| CSymbolicTuple | |
| CSymbolicValue | |
| CSymbolicValueFactory | |
| CSymbolicVarbit | |
| CSymbolicVoid | |
| CSymRenameMap | |
| CSynthesizeActions | |
| CTableApplySolver | |
| CTableHit | |
| CTableInsertions | |
| CTableKeyNames | |
| CTablesInActions | |
| CTablesInKeys | |
| CTagGlobalActions | |
| CToP4 | |
| CTupleLocation | |
| CTypeChecking | |
| CTypeConstraint | |
| CTypeConstraints | |
| ►CTypeInference | |
| CComparison | |
| CTypeMap | |
| CTypeOccursVisitor | |
| CTypeSpecialization | |
| CTypeSpecializationMap | |
| CTypeSubstitution | |
| CTypeSubstitutionVisitor | |
| CTypeUnification | |
| CTypeVariableSubstitution | |
| CTypeVariableSubstitutionVisitor | |
| CUniqueNames | |
| CUniqueParameters | |
| CUnnestSelectList | |
| ►CUnrollLoops | |
| Cloop_bounds_t | |
| CPolicy | |
| CUselessCasts | |
| CValidateMatchAnnotations | |
| CValidateParsedProgram | |
| CValidateTableProperties | |
| CValidateValueSets | |
| CValueMap | |
| CVisitedKey | The main class for parsers' states key for visited checking |
| CWithFieldsLocation | Base class for location sets that contain fields |
| ►NP4Tools | |
| NControlPlaneState | |
| ►NTraceEvents | This file defines explicit types of trace events extended from the generic trace class |
| CAssignmentStatement | Represents an assignment statement |
| CEmit | A field being emitted by a deparser |
| CExpression | A simple event that stores the provided expression |
| CExtractFailure | |
| CExtractSuccess | |
| CGeneric | A generic event that only takes in a string as label |
| CGenericDescription | |
| CIfStatementCondition | Represents an if statement condition |
| CMethodCall | Label dedicated to method call expression |
| CPacket | A packet that is either presented to a parser or emitted from a deparser |
| CParserStart | Marks the start of a parser |
| CParserState | Marks the entry into a parser state |
| CAbstractExecutionState | Represents state of execution after having reached a program point |
| CAbstractP4cTool | |
| CAbstractP4cToolOptions | |
| CAbstractRepCheckedNode | |
| ►CArchSpec | Specifies a canonical representation of the target pipeline as documented in P4 code |
| CArchMember | An ArchMember represents a construct in the pipe. It has a name and parameters |
| CCompileContext | A compilation context for P4Tools that provides a custom compiler configuration |
| CCompilerConfiguration | |
| CCompilerResult | |
| CCompilerTarget | Encapsulates the details of invoking the P4 compiler for a target device and architecture |
| CConvertStructExpr | |
| CConvertVarbits | |
| CExtendedCallGraph | |
| CFormatOptions | Defines common formatting options |
| CHSIndexToMember | The main class for finding non-concrete header stack indices |
| CInheritedCompilerOptionSpec | |
| CMaskBuilder | |
| CMidEnd | |
| CModel | |
| CNamespaceContext | Represents a stack of namespaces |
| CP4Constants | |
| CP4ProgramDCGCreator | The main class for building control flow DCG |
| CReachabilityEngine | |
| CReachabilityEngineState | The main data for reachability engine |
| CSmithOptions | |
| CSymbolicEnv | |
| CTaint | |
| CTaintPropagator | |
| ►CTarget | |
| CSpec | Specifies a target device and architecture by their names in lower case |
| CTraceEvent | An event in a trace of the execution of a P4 program |
| CUtils | General utility functions that are not present in the compiler framework |
| CZ3Solver | A Z3-based implementation of AbstractSolver. Encapsulates a z3::solver and a z3::context |
| CZ3SolverAccessor | |
| CZ3Translator | Translates P4 expressions into Z3. Any variables encountered are declared to a Z3 instance |
| ►Nstd | STL namespace |
| Chash< ClosedRange< Unit, Order > > | |
| Chash< cstring > | |
| Chash< HalfOpenRange< Unit, Order > > | |
| Chash< P4::ComputeDefUse::loc_t > | |
| Chash< P4::loc_t > | |
| Chash< P4::ProgramPoint > | |
| Chash< std::pair< T1, T2 > > | |
| Chash< std::tuple< Types... > > | |
| ►NTC | This file defines functions for the pass to generate the introspection file |
| CActionAttributes | |
| CActionParam | |
| CActionTranslationVisitorPNA | |
| CAnnotation | |
| CBackend | |
| CControlBodyTranslatorPNA | |
| ►CConvertToBackendIR | |
| CExternBlock | |
| CExternInstance | |
| CConvertToEBPFControlPNA | |
| CConvertToEBPFDeparserPNA | |
| CConvertToEBPFParserPNA | |
| CConvertToEbpfPipelineTC | |
| CConvertToEbpfPNA | |
| CCRC16ChecksumAlgorithmPNA | |
| CCRC32ChecksumAlgorithmPNA | |
| CCRCChecksumAlgorithmPNA | |
| CDeparserHdrEmitTranslatorPNA | |
| CEBPFChecksumPNA | |
| CEBPFControlPNA | |
| CEBPFCounterPNA | |
| CEBPFHashAlgorithmTypeFactoryPNA | |
| CEBPFInternetChecksumPNA | |
| CEBPFPnaParser | |
| CEBPFRegisterPNA | |
| CEBPFTablePNA | |
| CEBPFTablePNADirectCounterPropertyVisitor | |
| CExtern | |
| CExternAttributes | |
| CExternInstancesAttributes | |
| CIngressDeparserPNA | |
| CInspectPnaProgram | |
| CInternetChecksumAlgorithmPNA | |
| CIntrospectionGenerator | This pass generates introspection JSON into user specified file |
| CIntrospectionInfo | |
| CKeyFieldAttributes | |
| CMidEnd | |
| CParsePnaArchitecture | |
| CParseTCAnnotations | |
| CPNAArchTC | |
| CPNAEbpfGenerator | |
| CPNAErrorCodesGen | |
| CPnaProgramStructure | |
| CPnaStateTranslationVisitor | |
| CTableAttributes | |
| CTCIngressPipelinePNA | |
| CTCOptions | |