|  ►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 |  | 
|  CBuildResourceMap |  | 
|  ►CCFG |  | 
|  CDummyNode |  | 
|  CEdge | A CFG Edge; can be an in-edge or out-edge  | 
|  CEdgeSet |  | 
|  CIfNode |  | 
|  CNode |  | 
|  CTableNode |  | 
|  CCheckUnsupported |  | 
|  CControlConverter |  | 
|  CConversionContext |  | 
|  CConvertGlobals |  | 
|  CConvertPsaToJson |  | 
|  CDeparserConverter |  | 
|  ►CDirectMeterMap |  | 
|  CDirectMeterInfo |  | 
|  CDiscoverStructure |  | 
|  CEnumOn32Bits |  | 
|  CExpressionConverter |  | 
|  CExternConverter |  | 
|  CHeaderConverter |  | 
|  CInspectPsaProgram |  | 
|  CJsonObjects |  | 
|  CLowerExpressions | This pass rewrites expressions which are not supported natively on BMv2  | 
|  CMatchImplementation |  | 
|  CMidEnd |  | 
|  CParseAnnotations | Parses BMV2-specific annotations  | 
|  CParsePsaArchitecture |  | 
|  CParserConverter |  | 
|  CParseV1Architecture |  | 
|  CProcessControls |  | 
|  CProgramStructure |  | 
|  CPsaCodeGenerator |  | 
|  CPsaEnumOn32Bits |  | 
|  CPsaProgramStructure |  | 
|  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 |  | 
|  ►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 |  | 
|  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 |  | 
|  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 |  | 
|  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::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 |  |