►NActionData | |
CALUOperation | |
CALUParameter | |
CALUPosition | |
CArgument | |
CConstant | |
►CFormat | |
CUse | |
CFormatType_t | |
CHash | |
CLocalPacking | |
CMeterALU | |
CMeterColor | |
CPackingConstraint | |
CParameter | |
CRamSection | |
CRamSectionPosition | |
CRandomNumber | |
CRandomPadding | |
CRotationInfo | |
CSharedParameter | |
CSingleActionAllocation | |
CSingleActionPositions | |
CUniqueLocationKey | |
►Nassoc | |
►Ndetail | Implementation details of for the namespace assoc |
C_is_stable | |
C_is_stable< std::pair< T1, T2 > > | |
C_is_stable< std::tuple< TH, Ts... > > | |
C_is_stable< std::tuple<> > | |
C_is_stable< T * > | |
C_void | |
CCondIterableAssoc | |
CCondIterableAssocBase | |
CCondIterableAssocBase< Base, Itble, typename _void< typename Base::key_compare >::type > | |
Cis_stable | |
Chash_map | |
Chash_set | |
Cmap | |
Cset | |
►NBFN | The namespace encapsulating Barefoot/Intel-specific stuff |
►NBFRT | |
►CBFRuntimeGenerator | |
CActionProf | |
CCounter | Common counter representation between PSA and other architectures |
CDigest | Common digest representation between PSA and other architectures |
CMeter | Common meter representation between PSA and other architectures |
CRegister | Common register representation between PSA and other architectures |
►CBFRuntimeSchemaGenerator | |
CActionSelector | |
►CDynHash | |
ChashField | |
CLpf | |
CParserChoices | |
CPortMetadata | |
CRegisterParam | |
►CSnapshot | |
CField | |
CValueSet | |
CWred | |
►CTypeSpecParser | |
CField | |
►NPSA | |
CActionProfile_Model | |
CActionSelector_Model | |
CAddParserStates | |
CAnalyzeProgram | |
CChecksum_Model | |
CCompilerGeneratedMetaType_Model | |
CControlConverter | |
CConvertNames | |
CCounter_Model | |
CCounterType_Model | |
CCreateErrorStates | |
CDigest_Model | |
CDirectCounter_Model | |
CDirectMeter_Model | |
CEgressControlConverter | |
CEgressDeparserConverter | |
CEgressDeparserInputMetaType_Model | |
CEgressDeparserModel | |
CEgressInputMetaType_Model | |
CEgressModel | |
CEgressOutputMetaType_Model | |
CEgressParserConverter | |
CEgressParserInputMetaType_Model | |
CEgressParserModel | |
CExpressionConverter | |
CExternConverter | |
CFindPacketPath | |
CHash_Model | |
CHashAlgorithmType_Model | |
CHashConverter | |
CIngressControlConverter | |
CIngressDeparserConverter | |
CIngressDeparserModel | |
CIngressInputMetaType_Model | |
CIngressModel | |
CIngressOutputMetaType_Model | |
CIngressParserConverter | |
CIngressParserInputMetaType_Model | |
CIngressParserModel | |
CInternetChecksum_Model | |
CLoadTargetArchitecture | |
CMeter_Model | |
CMeterColor_Model | |
CMeterColorTypeTo8Bits | |
CMeterConverter | |
CMeterType_Model | |
CMoveAssignment | |
CPacketPath | |
CPacketPathInfo | |
CPacketPathTo8Bits | |
CPacketPathType_Model | |
CParserConverter | |
CPathExpressionConverter | |
CPipeline | |
CProgramStructure | |
CPsaBlockInfo | |
CPsaModel | |
CRandom_Model | |
CRandomConverter | |
CRegister_Model | |
CRewritePacketPath | |
CRewriteParserVerify | |
CStatementConverter | |
CTableAttributes_Model | |
CTranslatePacketPathIfStatement | |
CTranslateProgram | |
CTypeNameConverter | |
CTypeNameExpressionConverter | |
►NResources | |
CActionBusByteResource | |
►CHashBitResource | |
CUsage | |
CHashDistResource | |
CIMemColorResource | |
CMemoriesResource | |
CStageResources | |
CXbarByteResource | |
►NV1 | |
CAnalyzeProgram | |
CCollectParserChecksums | |
CConstructSymbolTable | |
CControlConverter | |
CConvertNames | |
CEgressControlConverter | |
CEgressDeparserConverter | |
CEgressParserConverter | |
CExpressionConverter | |
CExternConverter | |
CFixupBackwardCompatibility | |
CIngressControlConverter | |
CIngressDeparserConverter | |
CIngressParserConverter | |
CInsertChecksumDeposit | |
►CInsertChecksumError | |
CComputeEndStates | |
CInsertBeforeAccept | |
CInsertEndStates | |
CInsertParserChecksums | |
CLoadTargetArchitecture | |
CLoweringType | |
CMeterConverter | |
CNormalizeProgram | |
CParserConverter | |
CParserCounterConverter | |
►CParserCounterSelectCaseConverter | |
CRewriteSelectCase | |
CParserCounterSelectExprConverter | |
CParserCounterSelectionConverter | |
CParserPriorityConverter | |
CPathExpressionConverter | |
CProgramStructure | |
CRegisterConverter | |
CRemoveNodesWithNoMapping | |
CStatementConverter | |
CTranslateParserChecksums | |
CTypeNameExpressionConverter | |
CActionArgSetup | |
CActionBodySetup | |
CActionFunctionSetup | |
CActionProfile | |
CActionSelector | |
CActionSynthesisPolicy | |
CAddAdjustByteCount | |
CAddHardwareConstrainedFields | |
CAddIntrinsicMetadata | |
CAddMetadataFields | |
CAddMetadataParserStates | |
CAddPaddingFields | |
CAddParserPad | Add "padding" (additional states/extract fields) to parsers to meet minimum parse depth requirements |
CAddPsaBridgeMetadata | |
CAddT2naMeta | |
CAddTnaBridgeMetadata | |
CAdjustByteCountSetup | |
CAlloc1D | |
CAlloc1Dbase | |
CAlloc2D | |
CAlloc2Dbase | |
CAlloc3D | |
CAlloc3Dbase | |
CAlpmImplementation | Top level PassManager that governs the ALPM implementation |
CAncestorStates | |
CAnnotateVarbitExtractStates | |
CAnnotateWithInHash | Top level PassManager that governs annotation of specific assignment statements with the @in_hash annotation |
CApplyEvaluator | |
CArchitecture | |
CArchTranslation | PassManager that governs the normalization of variations in the architectures |
CAsmOutput | Generate assembly output |
CAssignmentStmtErrorCheck | |
CAssignOr | |
CAttachTables | |
CBackend | |
CBackendConstantFolding | |
CBackendConverter | |
CBackendStrengthReduction | |
CBFRuntimeArchHandlerCommon | |
CBFRuntimeArchHandlerPSA | |
►CBFRuntimeArchHandlerTofino | |
CSnapshotInfo | |
CBlockInfo | |
CBridgedFieldInfo | |
CCheckDesignPattern | Top level PassManager that governs checking for design patterns |
CCheckDirectExternsOnTables | |
CCheckDirectResourceInvocation | |
CCheckExternInvocationCommon | |
CCheckExternValidity | Checks if the emit function call is valid with the TNA constraints |
CCheckHeaderAlignment | |
CCheckPadAssignment | |
CCheckPhaseZeroExtern | |
CCheckRegisterActions | PassManager that checks if the RegisterActions work on proper Registers |
CCheckReservedNames | |
CCheckT2NAExternInvocation | |
CCheckTableConstEntries | |
CCheckTNAExternInvocation | |
CCheckUnimplementedFeatures | |
CCheckUnsupported | Check for unsupported features in the backend compiler |
CCheckVarbitAccess | Checks that varbit accesses in pipeline are valid |
CCloneConstants | |
CClotResourcesLogging | |
CCollectAlpmInfo | |
CCollectBridgedFields | |
CCollectHardwareConstrainedFields | |
CCollectIXBarInfo | |
CCollectPhase0Annotation | |
►CCollectPipelines | Inspector pass that collects information about all pipelines declared in the Switch. For given pipeline (given by its numeric id), it is possible to extract the pipeline components (e.g. parsers, deparsers and gress control for all gresses and possible ghost gress) |
CFullGress | Description ingress or egress |
CPipe | |
CPipelines | |
CCollectVarbitExtract | |
CCollectVariables | |
CCompileTimeOperations | Pass that checks for operations that are defined at compile time (Div, Mod) |
CControlFlowVisitor | |
CConvertMethodCalls | |
CConvertPhase0 | |
CConvertPhase0AssignToExtract | |
CConvertSizeOfToConstant | |
CCopyHeaders | |
CCounterExtern | |
CDebugInfo | |
CDesugarVarbitExtract | Top level PassManager that governs the rewrite of varbit usage |
CDetectMultiplePipelines | |
CDigest | The information about a digest instance which is needed to serialize it |
CDoAnnotateWithInHash | |
CDoInitializeMirrorIOSelect | |
CDoRemoveActionParametersTofino | |
CDoRewriteControlAndParserBlocks | |
CDropPacketWithMirrorEngine | |
CDropPacketWithMirrorEngine_ | |
CDynamicHashJson | |
►CDynHash | The information about a hash instance which is needed to serialize it |
ChashField | |
CElimCasts | Top level PassManager that simplifies complex expression with multiple casts into simpler expression with at most one cast |
CEliminateHeaders | |
CEliminateTuples | |
CEliminateWidthCasts | |
CElimParserValidZeroWrites | Eliminate unnecessary parser zero-writes to validity bits |
CElimUnusedMetadataStates | |
►CEnumOn32Bits | Class that implements a policy suitable for the ConvertEnums pass |
CFindStatefulEnumOutputs | Pass that creates a policy for ConvertEnums |
CErrorOnUnsupportedVarbitUse | |
CErrorType | Barefoot specific error and warning types |
►CEvaluateForVar | |
CSubstituteVar | |
CEvaluatorPass | A modified version of P4::EvaluatorPass that uses BFN::TypeChecking |
CExtractChecksum | Pass that extracts checksums from deparser |
CExtractDeparser | Transforms midend deparser IR::BFN::TnaDeparser into backend deparser IR::BFN::Deparser |
CExtractMetadata | |
CExtractParser | Transforms midend parser IR::BFN::TnaParser into backend parser IR::BFN::Parser |
►CFieldPacking | |
CPackedItem | |
CFindArchitecture | |
CFindBridgeMetadataAssignment | |
CFindDirectExterns | |
CFindPaddingCandidate | |
CFixP4Table | |
CFixupMirrorMetadata | |
CFixupResubmitMetadata | |
CFlattenHeader | Pass that flattened nested struct within a struct |
CFoldConstantHashes | PassManager that substitutes the calls of the get methods of the Hash externs whose inputs are constants with the resulting hash value |
CFrontEndPolicy | |
CGatewayControlFlow | |
CGenerateDynamicHashJson | |
CGenerateTofinoProgram | |
CGetBackendParser | Converts frontend parser IR into backend IR |
CGetBackendTables | |
CGetHeaderStackIndex | |
CHasTableApply | |
►CHeaderStackInfo | Metadata about how header stacks are used in the program |
CInfo | |
CIdentifyPadRequirements | Verify parse depth requirements and identify any "pad" required |
CIdentifyPovMergeTargets | Identify POV bits that can be merged |
CIgnoreKeyElementTransform | Auxiliary transformer to avoid processing IR::KeyElement nodes |
CInitializeMirrorIOSelect | Initializes eg_intr_md_for_dprsr.mirror_io_select on devices except Tofino1 |
►CInjectTmpVar | PassManager which controls injecting of temporary variables to be used instead of nested structures which need to be flattened by FlattenHeader pass |
CDoInject | Injects a temporary variable |
CInsertHashStructExpression | |
CIsPhase0 | |
CIsSlice | |
CIsSliceMask | |
CKeyIsSimple | |
CLinearPath | |
CLoweringType | |
CLpf | The information about a LPF instance which is needed to serialize it |
CMatch | |
CMergePovBits | Merge POV bits where a single POV bit could be shared between multiple headers |
CMetadataField | A helper struct used to construct the metadata remapping tables |
CMeterExtern | |
CMidEnd | |
CMidEndLast | Final midend pass |
CMoveBridgeMetadataAssignment | |
CNormalizeNativeProgram | |
COptionalToTernaryMatchTypeConverter | Pass that converts optional match type to ternary |
CP4RuntimeStdConverter | |
CPadFlexibleField | |
CParseAnnotations | |
►CParserEnforceDepthReq | Enforce parser min/max depth requirements |
CParserPadReq | Pad requirements for a parser instance to enforce min parse depth |
►CParserLoopsInfo | |
CGetMaxLoopDepth | |
CParserPragmas | |
CParserResourcesLogging | Class for generating JSON info with parser resources usage for visualization in P4I |
CParseTna | |
CPathLinearizer | |
►CPingPongGeneration | PassManager that adds the ping pong mechanism for ghost thread |
CApplyMCSChanger | This visitor changes P4 table references in cloned MethodCallStatement |
CDeclarationChanger | Base visitor class for other classes that change declarations |
CP4ActionChanger | This visitor changes specific references in new cloned P4 action |
CP4TableChanger | This visitor changes specific references in new cloned P4 table |
CPingPongFieldFinder | Finds a ghost_metadata.ping_pong field reference in a subtree |
CRegActionChanger | This visitor changes specific references in new cloned register action |
CPipeline | |
CPortableSwitchTranslation | PassManager that governs normalization of PSA architecture |
CPortMetadata | |
CPragma | |
CProcessBackendPipe | Must be applied to IR::BFN::Pipe |
CProcessParde | |
CProgramPipelines | |
CProgramStructure | |
CPSAArchHandlerBuilder | The architecture handler builder implementation for PSA |
CPsaBridgeIngressToEgress | |
CRegister | The information about a register instance which is needed to serialize it |
CRegisterParam | The information about a register parameter instance which is needed to serialize it |
CRegisterReadWrite | The pass replaces the Register.read/write() calls with register actions |
CRemoveActionParameters | Top level PassManager that governs moving of action parameters out of the actions (specialized for BFN) |
CRemoveExternMethodCallsExcludedByAnnotation | |
CRemoveSelectBooleans | |
CRemoveSetMetadata | |
CRemoveZeroVarbitExtract | |
CRenameP4StartState | |
CResetHeaderStackIndex | |
CResolveHeaderStackIndex | |
CResolveSizeOfOperator | |
CResourcesLogging | Class for generating resources.json logfile |
CRestoreParams | |
CRewriteActionNames | |
CRewriteActionSelector | |
CRewriteCastToReinterpretCast | Pass that converts some of the IR::Casts to ReinterpretCasts |
CRewriteConcatToSlices | Pass that replaces concat ++ operations with multiple operations on slices in the contexts |
CRewriteControlAndParserBlocks | |
CRewriteEgressIntrinsicMetadataHeader | Pass that updates egress intrinsic metadata |
CRewriteFlexibleStruct | Top level PassManager that governs moving of flexible annotation from structure to its fields |
CRewriteHeader | |
CRewriteParserChecksums | |
CRewriteParserStatements | Rewrites frontend parser IR statements to the backend ones |
CRewriteParserVerify | |
CRewritePathToStartState | |
CRewriteTypeArguments | |
CRewriteVarbitTypes | |
CRewriteVarbitUses | |
CSaveHashListExpression | |
CSearchAndReplaceExpr | |
CSetDefaultSize | Pass that sets default table size to 512 entries |
CSetupActionProperties | |
CSimpleSwitchTranslation | PassManager that governs normalization of v1model architecture |
CSimplifyEmitArgs | Top level PassManager that governs simplification of headers and emits |
CSimplifyNestedCasts | Pass that removes nested casts when applicable |
CSimplifyOperationBinary | Pass that moves the cast on binary operation to each operand |
CSimplifyRedundantCasts | Pass that removes some of the redundant casts |
CSnapshotFieldFinder | |
CSnapshotFieldIdTable | |
CSnapshotFieldInfo | |
CSplitAlpm | Pass that splits ALPM table into pre-classifier TCAM and TCAM |
CStrengthReduction | |
CSymbolType | Extends P4RuntimeSymbolType for the Tofino extern types |
CT2naArchTranslation | PassManager that governs normalization of T2NA architecture |
CTnaArchTranslation | PassManager that governs normalization of TNA architecture |
CTofinoArchHandlerBuilder | The architecture handler builder implementation for Tofino |
CTransformResubmitHeaders | |
CTranslatePhase0 | |
CTranslationFirst | |
CTranslationLast | |
CTypeChecking | A TypeChecking pass in BFN namespace that uses the extended TypeInference pass. This should be used in our midend |
CTypeInference | Extended type inference pass from p4c used in barefoot's midend |
CUpdatePhase0Header | |
CUpdatePhase0NodeInParser | |
CUpdatePovBits | Merge POV bits |
CValueSet | The information about a value set instance which is needed to serialize it |
CWred | The information about a Wred instance which is needed to serialize it |
►NConstraints | |
CAlignmentConstraint | |
CBooleanConstraint | |
CContainerSizeConstraint | |
CCopackConstraint | |
CDeparsedToTMConstraint | |
CDigestConstraint | |
CGroupConstraint | |
CIntegerConstraint | |
CMutuallyAlignedConstraint | |
CNoOverlapConstraint | |
CNoPackConstraint | |
CNoSplitConstraint | |
CPairConstraint | |
CSolitaryConstraint | |
►NLogging | |
CFileLog | A FileLog is used to redirect the logging output of a visitor pass to a file |
CLogger | Base class for logging to a file |
CManifest | |
CPassManager | |
CPlainWriterAdapter | |
CPrettyWriterAdapter | |
CWriter | |
►NMauPower | |
CBuildPowerGraph | |
CDeterminePowerUsage | |
CEdge | |
CFinalizeMauPredDepsPower | |
CMauFeatures | |
CMprSettings | |
CNode | |
CNodeAndEdgeSet | |
CPowerMemoryAccess | |
CSimplePowerGraph | |
CWalkPowerGraph | |
►NMeterALU | |
►CFormat | |
CUse | |
►NP4 | TODO: this is not really specific to BMV2, it should reside somewhere else |
►NBFRT | |
►CBFRuntimeGenerator | |
CActionProf | |
CCounter | Common counter representation between PSA and other architectures |
CDigest | Common digest representation between PSA and other architectures |
CMeter | Common meter representation between PSA and other architectures |
CRegister | Common register representation between PSA and other architectures |
►CBFRuntimeSchemaGenerator | |
CActionSelector | |
►CTypeSpecParser | |
CField | |
►NBitRange | |
CFromTo | |
CMinToMax | |
CStartLen | |
CZeroToMax | |
►NBMV2 | TODO: this is not really specific to BMV2, it should reside somewhere else |
►NHelpers | |
CCounterlikeTraits | |
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 | |
CActionProfileTraits | |
CActionProfileTraits< Arch::PNA > | |
CActionProfileTraits< Arch::PSA > | |
CActionProfileTraits< Arch::V1MODEL > | |
CActionProfileTraits< Arch::V1MODEL2020 > | |
CActionSelectorTraits | |
CActionSelectorTraits< Arch::PNA > | |
CActionSelectorTraits< Arch::PSA > | |
CActionSelectorTraits< Arch::V1MODEL > | |
CActionSelectorTraits< Arch::V1MODEL2020 > | |
CCounterExtern | |
CMeterExtern | |
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 > | |
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 | |
►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 > > | |
CCounterlikeTraits<::BFN::CounterExtern< BFN::Arch::PSA > > | CounterlikeTraits specialization for BFN::CounterExtern for PSA |
CCounterlikeTraits<::BFN::CounterExtern< BFN::Arch::TNA > > | CounterlikeTraits<> specialization for CounterExtern |
CCounterlikeTraits<::BFN::MeterExtern< BFN::Arch::PSA > > | CounterlikeTraits specialization for BFN::MeterExtern for PSA |
CCounterlikeTraits<::BFN::MeterExtern< BFN::Arch::TNA > > | CounterlikeTraits<> specialization for MeterExtern |
►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 |
►NDBPrint | |
Cclrflag | |
Csetflag | |
Csetflags_helper | |
Csetprec | |
►Ndetail | |
CDbprintDispatchPtr | |
CDbprintDispatchRef | |
►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 | |
►NIndentCtl | |
CTempIndent | |
►NIR | |
►NMAU | |
►NTable | |
►Cpayload_info_t | |
Cinfo_t | |
CHashFunction | |
CSplitFlowVisitTableNext | |
►NTraversal | |
►NDetail | |
CTraverse | Internal, don't use directly. The class exists so that the functions can be mutually recursive |
CAssign | A selector used at the end of selector chain to assign to the current sub-object. e.g. modify(obj, &IR::AssignmentStatement::left, Assign(var)) will set the LHS of assignment |
CIndex | Select an index of a integer-indexed sub-object. This is useful e.g. to select first parameter of a method call and in similar cases involving IR::Vector or IR::IndexedVector |
Chas_static_type_name | |
Chas_static_type_name< T, std::void_t< decltype(T::static_type_name())> > | |
CID | |
CIDeclaration | The Declaration interface, representing objects with names |
CIndexedVector | |
CINode | |
CNameMap | |
CNode | |
CNodeMap | |
CStateVariableEqual | Equals for StateVariable pointers. We only compare the label |
CStateVariableLess | Less for StateVariable pointers. We only compare the label |
CSymbolicVariableEqual | Equals for SymbolicVariable pointers. We only compare the label |
CSymbolicVariableLess | Less for SymbolicVariable pointers. We only compare the label |
CVector | |
CVectorBase | |
►NLog | |
►NDetail | |
CLevelAndOutput | |
COutputLogPrefix | |
►NModel | |
CElem | |
CEnum_Model | Enum_Model : Type_Model |
CExtern_Model | Extern_Model : Type_Model |
CModel | |
CParam_Model | Param_Model : Elem |
CType_Model | |
►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_14 | |
CInlineActions | Special inliner which works directly on P4-14 representation |
►NP4Fmt | |
►CAttach | |
CComments | |
CP4fmtOptions | |
CP4Formatter | |
►NP4Test | |
CMidEnd | |
CSkipControls | |
►NP4Tools | |
►NP4Smith | |
►NBMv2 | |
CAbstractBMv2SmithTarget | |
CBmv2PsaSmithTarget | |
CBmv2V1modelSmithTarget | |
►NGeneric | |
CAbstractGenericSmithTarget | |
CGenericCoreSmithTarget | |
►NNic | |
CAbstractNicSmithTarget | |
CDpdkPnaSmithTarget | |
►NTofino | |
CAbstractTofinoSmithTarget | |
CTofinoTnaSmithTarget | |
CConstraints | |
CDeclarationGenerator | |
CDeclarations | |
CExpressionGenerator | |
CGenerator | |
CNicExpressionGenerator | |
CP4Scope | |
CParserGenerator | |
CProbabilities | |
CProperties | |
CRequirements | |
CSmith | |
CSmithTarget | |
CStatementGenerator | |
CTableGenerator | |
CWordlist | |
►NP4Testgen | |
►NBmv2 | Inja |
CAssertsParser | |
CBmv2Concolic | |
CBMv2Constants | |
CBmv2TestBackend | |
CBmv2TestFramework | Bmv2TestFramework provides common utility functions for BMv2-style test frameworks |
CBmv2V1ModelActionProfile | |
CBmv2V1ModelActionSelector | |
CBmv2V1ModelCloneInfo | |
CBmv2V1ModelCloneSpec | |
CBmv2V1ModelCmdStepper | |
CBMv2V1ModelCompilerResult | Extends the CompilerResult with information specific to the V1Model running on BMv2 |
CBmv2V1ModelExprStepper | |
CBmv2V1ModelMeterValue | |
CBmv2V1ModelProgramInfo | |
CBmv2V1ModelRegisterValue | |
CBmv2V1ModelTableStepper | |
CBmv2V1ModelTestgenTarget | |
CIndexExpression | |
CIndexMap | Readable and writable symbolic map, which maps indices to particular values |
CLexer | |
CMapDirectExterns | |
CMetadata | Extracts information from the @testSpec to emit a Metadata test case |
CMetadataCollection | |
COptional | |
CPropagateP4RuntimeTranslation | |
CProtobuf | Extracts information from the @testSpec to emit a Protobuf test case |
CProtobufIr | Extracts information from the @testSpec to emit a Protobuf IR test case |
CProtobufIrTest | |
CProtobufTest | |
CPTF | Extracts information from the @testSpec to emit a PTF test case |
CRange | |
CRefersToParser | |
CSTF | Extracts information from the @testSpec to emit a STF test case |
CToken | |
►NEBPF | |
CEBPFCmdStepper | |
CEBPFConcolic | |
CEBPFConstants | |
CEBPFExprStepper | |
CEBPFProgramInfo | |
CEBPFTableStepper | |
CEBPFTestBackend | |
CEBPFTestgenTarget | |
CSTF | Extracts information from the @testSpec to emit a STF test case |
►NPna | Inja |
CMetadata | Extracts information from the @testSpec to emit a Metadata test case |
CMetadataCollection | |
COptional | |
CPnaConstants | |
CPnaDpdkActionProfile | |
CPnaDpdkActionSelector | |
CPnaDpdkCmdStepper | |
CPnaDpdkConcolic | |
CPnaDpdkExprStepper | |
CPnaDpdkProgramInfo | |
CPnaDpdkRegisterCondition | |
CPnaDpdkRegisterValue | |
CPnaDpdkTableStepper | |
CPnaDpdkTestgenTarget | |
CPnaSymbolicVars | Variabless are variables that can be controlled and set by P4Testgen |
CPnaTestBackend | |
CPTF | Extracts information from the @testSpec to emit a PTF test case |
CRange | |
CSharedPnaCmdStepper | |
CSharedPnaExprStepper | |
CSharedPnaProgramInfo | |
►CSharedPnaTableStepper | |
CSharedPnaProperties | Shared PNA table properties |
CAbstractStepper | |
CAbstractTest | Type definitions for abstract tests |
CActionArg | |
CActionCall | |
CCmdStepper | Implements small-step operational semantics for commands |
CCommandVisitor | |
CConcolic | |
CConcolicMethodImpls | Encapsulates a set of concolic method implementations |
CConcolicResolver | |
►CContinuation | |
CBody | A continuation body is a list of commands |
CGuard | |
CParameter | |
CPropertyUpdate | |
CReturn | |
CCoverableNodesScanner | |
CDepthFirstSearch | |
CExact | |
►CExecutionState | Represents state of execution after having reached a program point |
CStackFrame | |
►CExprStepper | Implements small-step operational semantics for expressions |
CExternMethodImpls | Encapsulates a set of extern method implementations |
CPacketCursorAdvanceInfo | |
CExternInfo | |
CFinalState | Represents the final state after execution |
CGreedyNodeSelection | |
CLPM | |
CPacket | |
CPacketVars | |
CProgramInfo | Stores target-specific information about a P4 program |
CRandomBacktrack | |
CSelectedBranches | Explores one path described by a list of branches |
►CSmallStepEvaluator | |
CBranch | |
CSymbolicExecutor | |
CTableConfig | |
CTableMatch | |
CTableRule | |
CTableStepper | Implements small-step operational semantics for tables |
CTernary | |
►CTestBackEnd | |
CTestInfo | |
CTestBackendConfiguration | |
CTestFramework | |
CTestgen | This is main implementation of the P4Testgen tool |
CTestgenCompilerResult | Extends the CompilerResult with the associated P4RuntimeApi |
CTestgenOptions | Encapsulates and processes command-line options for P4Testgen |
CTestgenTarget | |
CTestgenUnimplemented | |
CTestObject | |
CTestSpec | |
CVariableSubstitution | |
►NTableUtils | |
CKeyProperties | KeyProperties define properties of table keys that are useful for execution |
CTableProperties | Basic table properties that are set when initializing the TableStepper |
►NTest | |
►NArithmTest | |
CSaturationTransform | The main class for saturation transformation |
CZ3SolverAddSat01 | |
CZ3SolverAddSat02 | |
CZ3SolverAddSat03 | |
CZ3SolverAddSat04 | |
CZ3SolverAddSat05 | |
CZ3SolverSubSat01 | |
CZ3SolverSubSat02 | |
CZ3SolverSubSat03 | |
CZ3SolverSubSat04 | |
CZ3SolverSubSat05 | |
►NZ3Test | |
CZ3SolverAdd | |
CZ3SolverBAnd | |
CZ3SolverBOR | |
CZ3SolverBXor | |
CZ3SolverCastBit2Bool | |
CZ3SolverCastBit2EqualBit | |
CZ3SolverCastBit2LargerBit | |
CZ3SolverCastBit2LessBit | |
CZ3SolverCastBool2Bit | |
CZ3SolverCastInAssignment | |
CZ3SolverComplement | |
CZ3SolverConc | |
CZ3SolverITE | |
CZ3SolverMod | |
CZ3SolverMult | |
CZ3SolverShl | |
CZ3SolverShrS | |
CZ3SolverShrU | |
CZ3SolverSub | |
CBmv2SmallStepTest | |
CFormatTest | Helper methods to build configurations for Format Tests |
CNodeFinder | |
CP4AssertsParserTest | |
CP4CReachability | |
CP4ReachabilityOptions | |
CP4RuntimeApiTest | Helper methods to build configurations for P4RuntimeApi Tests |
CP4SmithForInLoopTest | |
CP4SmithForLoopTest | |
CP4TestgenBenchmark | |
CP4TestgenBmv2Test | Sets up the correct context for a P4Testgen BMv2 test |
CP4TestgenLibrary | |
CP4TestgenOutputOptionTest | |
CP4TestgenTest | |
CP4TestOptions | |
CP4ToolsTestCase | Encapsulates functionality for running the front- and mid-ends of the compiler in a test |
CPTFTest | Helper methods to build configurations for PTF Tests |
CSmallStepTest | |
CSTFTest | Helper methods to build configurations for STF Tests |
CSymbolicConverter | Converts IR::Member into symbolic variables |
CTaintTest | Helper methods to build configurations for Taint Tests |
CZ3SolverSatisfiabilityChecks | |
CZ3SolverSatTests | |
CZ3SolverTest | |
CZ3SolverTests | |
►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 |
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 |
►NP4V1 | |
CActionProfile_Model | |
CActionSelector_Model | |
CAdjustLengths | |
CAlgorithm_Model | |
CCheckIfMultiEntryPoint | |
CCloner_Model | |
CCloneType_Model | |
CCollectBridgedFields | |
CCollectDigestFields | |
CComputeCallGraph | |
CComputeTableCallGraph | |
CControl_Model | |
CConversionContext | |
CConvertConcreteHeaderRefToPathExpression | |
CConverter | |
CConvertMetadata | |
CCounter_Model | |
CCounterOrMeter_Model | |
CCounterType_Model | |
CDeparser_Model | |
CDetectDuplicates | |
CDigestReceiver_Model | |
CDirectCounter_Model | |
CDirectMeter_Model | |
CDiscoverStructure | |
CExpressionConverter | |
CExternConverter | |
CFieldListConverter | |
CFindHeaderReference | |
CFindRecirculated | |
CFixApplyStatement | |
CFixBridgedIntrinsicMetadata | |
CFixChecksum | |
CFixDuplicatePathExpression | |
CFixEgressParserDuplicateReference | |
CFixExtracts | |
CFixIdleTimeout | |
CFixMultiEntryPoint | |
CFixParamType | |
CFixParserCounter | |
CFixParserPriority | |
CFixPktgenHeaderPath | |
CGetV1ModelVersion | |
CHash_Model | |
CInsertChecksumDeposit | |
►CInsertChecksumError | |
CComputeEndStates | |
CInsertBeforeAccept | |
CInsertEndStates | |
CInsertCompilerGeneratedStartState | |
CLpfConverter | |
CMeter_Model | |
CMeterConverter | |
CMeterType_Model | |
CModifyParserForChecksum | |
CMoveIntrinsicMetadata | |
CParser_Model | |
►CParserCounterSelectCaseConverter | |
CRewriteSelectCase | |
CStrengthReduction | |
CParserCounterSelectExprConverter | |
CPostTranslationFix | |
CPrimitiveConverter | |
CProgramStructure | Information about the structure of a P4-14 program, used to convert it to a P4-16 program |
CRandom_Model | |
CRegister_Model | |
CRemoveBuiltins | |
CRenameFieldPath | |
CRewriter | |
CStandardMetadataType_Model | |
CStatefulAluConverter | |
CStatementConverter | |
CSwitch_Model | |
CTableAttributes_Model | |
CTNA_ProgramStructure | |
CTnaConverter | |
CTnaProgramStructure | |
CTruncate | |
CTypeConverter | |
CV1Model | |
CVerifyUpdate_Model | |
CWREDConverter | |
►NParserStructureImpl | |
CParserStateRewriter | |
CParserSymbolicInterpreter | |
►NRTTI | |
►NDetail | |
CIsType | |
CToType | |
►Ndetail | |
CTypeIdResolver | |
CTypeIdResolver< T, std::void_t< decltype(T::static_typeId)> > | |
CTypeNameHolder | |
CBase | |
Cenable_if_has_rtti | |
Chas_rtti | |
CTypeInfo | |
►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 | |
CCRCChecksumAlgorithmPNA | |
CDeparserHdrEmitTranslatorPNA | |
CEBPFChecksumPNA | |
CEBPFControlPNA | |
CEBPFCounterPNA | |
CEBPFDigestPNA | |
CEBPFHashAlgorithmTypeFactoryPNA | |
CEBPFHashPNA | |
CEBPFInternetChecksumPNA | |
CEBPFMeterPNA | |
CEBPFPnaParser | |
CEBPFRegisterPNA | |
CEBPFTablePNA | |
CEBPFTablePNADirectCounterPropertyVisitor | |
CEBPFTablePNADirectMeterPropertyVisitor | |
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 | |
►NTest | |
►NMatch | |
CResult | 'Result' is used to report how a match has proceeded |
CActionAnalysisTest | |
CActionMutexTest | |
CActionPhv | |
CActionSourceTrackerTest | |
CAddAlwaysRunTest | |
CBackendTest | A GTest fixture base class for backend targets |
CBuildSuperCluster | |
CByteRotateMerge | |
CClotTest | |
CConstrainedFieldMapBuilderTest | |
►CContainerAction | |
CResult | |
CContainerSizeExtractorTest | |
CCriticalPathClustersTest | |
CDark | |
CDarkCannotSourceActionRAM | |
CDarker | |
CDarkSource | |
CDepositFieldContigousMask | |
CDominatorTreeTest | |
CDynamicDepTest | |
CEquivalentAlignExtractorTest | |
CErrorReporterTest | |
CEventLoggerTest | |
CEventLoggerTestable | |
CFieldDefUseTest | |
CFieldSliceLiveRangeTest | |
CGatewayControlFlowTest | |
CInputXbarAlloc | |
CJBayBackendTest | A GTest fixture for JBay tests |
CJBayContainerAction | |
CJBayPhvContainer | |
CJBayPhvCrush | |
CMauGroupExtractorTest | |
CMauIndirectExternsSingleActionTest | |
CMetadataLiveRangeTest | |
CMidendTestCase | |
CMochaAnalysisTest | |
CMultipleActionFromMeter | |
CMultipleApplyTest | |
CNextTablePropTest | |
CNoCoPack | |
CPaAtomicPragmaTest | |
CPaBytePackPragmaTest | |
CPaContainerSizePragmaTest | |
CPaContainerTypePragmaTest | |
CPaMutuallyExclusivePragmaTest | |
CPaNoOverlayPragmaTest | |
CParserConstantExtractTest | |
CParserCriticalPathTest | |
CPaSolitaryPragmaTest | |
CSliceSpec | |
CSlidesExamples | |
CStaticEntriesConstPropTest | |
CTableDependencyGraphTest | |
CTableDependencyGraphTestForTofino2 | |
CTableFlowGraphTest | |
CTableMutexTest | |
CTestCode | |
CTestWrite | |
CTofinoBackendTest | A GTest fixture for Tofino tests |
CTofinoBitvec | |
CTofinoComputedChecksum | |
CTofinoContainerAction | |
CTofinoField | |
CTofinoFieldAlignment | |
CTofinoFieldSlice | |
CTofinoPhvContainer | |
CTofinoPhvCrush | |
CTofinoPhvSlicingIterator | |
CTofinoPipeTestCase | |
CTofinoSccToposort | |
CTPHVSliceTest | |
CV1ModelStdMetaTranslateIngressExitTest | |
CV1ModelStdMetaTranslateNegativeTest | |
CV1ModelStdMetaTranslateTest | |
CV1ModelStdMetaTranslateTestBase | |
►NUBPF | |
CAlgorithm_Model | |
CEnumOn32Bits | |
CHash_Model | |
CMidEnd | |
COutHeaderSize | |
CPipeline_Model | |
CRegister_Model | |
CUBPFBoolType | |
CUbpfCodeBuilder | |
CUBPFControl | |
CUBPFControlBodyTranslator | |
CUBPFDeparser | |
CUBPFDeparserTranslationVisitor | |
CUBPFEnumType | |
CUBPFErrorType | |
CUBPFExternType | |
CUBPFListType | |
►CUBPFModel | |
CgetUBPFModelVersion | |
CUBPFParser | |
CUBPFParserState | |
CUBPFProgram | |
CUBPFRegister | |
CUBPFScalarType | |
CUBPFStructType | |
CUBPFTable | |
CUBPFTableBase | |
CUbpfTarget | |
CUBPFTypeFactory | |
►NUtil | |
►NDetail | |
CFloatHasher | |
CIntegerHasher | |
CStdHasher | |
CTupleHasher | |
CTupleHasher< 0, Types... > | |
CAsEnumerator | Casts each element |
CBitRange | |
CComment | |
CCompilationError | |
CCompilerBug | This class indicates a bug in the compiler |
CCompilerUnimplemented | This class indicates an unimplemented feature in the compiler |
CConcatEnumerator | Concatenation |
CContainerType | |
CEmptyEnumerator | Always empty iterator (equivalent to end()) |
CEnumerator | Type-erased Enumerator interface |
CEnumeratorHandle | |
CFilterEnumerator | |
Chas_SourceInfo | SFINAE helper to check if given class has a getSourceInfo method |
Chas_SourceInfo< T, std::void_t< decltype(std::declval< T >().getSourceInfo())> > | |
Chas_toString | SFINAE helper to check if given class has a toString method |
Chas_toString< T, std::void_t< decltype(std::declval< T >().toString())> > | |
CHash | |
CHasher | |
CHasher< big_int > | |
CHasher< bool > | |
CHasher< char > | |
CHasher< ClosedRange< Unit, Order > > | |
CHasher< cstring > | |
CHasher< double > | |
CHasher< float > | |
CHasher< HalfOpenRange< Unit, Order > > | |
CHasher< IR::ID > | |
CHasher< P4::ProgramPoint > | |
CHasher< signed char > | |
CHasher< signed int > | |
CHasher< signed long > | |
CHasher< signed long long > | |
CHasher< signed short > | |
CHasher< std::pair< T1, T2 > > | |
CHasher< std::shared_ptr< T > > | |
CHasher< std::string > | |
CHasher< std::string_view > | |
CHasher< std::tuple< Types... > > | |
CHasher< std::unique_ptr< T > > | |
CHasher< T * > | |
CHasher< unsigned char > | |
CHasher< unsigned int > | |
CHasher< unsigned long > | |
CHasher< unsigned long long > | |
CHasher< unsigned short > | |
CIHasSourceInfo | |
CIJson | |
CInputSources | |
Citerator_range | |
CIteratorEnumerator | A generic iterator returning elements of type T |
CJsonArray | |
CJsonObject | |
CJsonValue | |
CMapEnumerator | Transforms all elements from type T to type S |
CNamedSymbol | |
CNamespace | |
CObject | |
►COptions | |
COption | |
CP4CExceptionBase | |
CProgramStructure | |
CScopedTimer | |
CScopedTimerCtx | |
CSimpleType | |
CSingleEnumerator | |
CSourceCodeBuilder | |
CSourceFileLine | |
CSourceInfo | |
CSourcePosition | |
CTimerEntry | |
►NV1 | |
CV1ParserDriver | A ParserDriver that can parse P4-14 programs |
CAbstractInliner | |
CAbstractParserDriver | |
CAbstractSolver | Provides a higher-level interface for an SMT solver |
CActionCall | |
CActionInvocation | |
CActionReplacement | |
CActionsInliner | |
CActionSynthesisPolicy | |
CAddMissingIdAnnotations | |
CAllDefinitions | |
CAllocTrace | |
CAnalyzeParser | |
CAnnotationSelectionPolicy | |
CAnyElement | |
CApplyMethod | |
CApplyOptionsPragmas | |
CApplyTypesToExpressions | |
CArrayLocation | |
CAutoCompileContext | |
Cbacktrace_exception | |
►CBacktrack | |
Ctrigger | |
CBaseCompileContext | |
CBaseLocation | |
Cbasic_nullbuf | |
CBinaryConstraint | Base class for EqualityConstraint and CanBeImplicitlyCastConstraint |
CBindTypeVariables | |
Cbitranges | |
►Cbitvec | |
Cconst_bitref | |
Ccopy_bitref | |
Cnonconst_bitref | |
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 |
CCheckHeaderTypes | |
CCheckNamedArgs | |
CCheckShadowing | |
CCheckTableSize | Checks some possible misuses of the table size property |
CChooseEnumRepresentation | |
CChooseErrorRepresentation | |
CClearTypeMap | |
CCloneConstants | |
CCloneExpressions | |
CCloneVariableDeclarations | |
CClosedRange | |
CCollectUsedDeclarations | Collects all used declarations into @used set |
CCompileContextStack | |
CCompilerOptions | |
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 | |
►CControlFlowVisitor | |
Cflow_join_info_t | |
CGuardGlobal | RAII class to ensure global key is only used in one place |
CSaveGlobal | RAII class to save and restore one or more global keys |
CSetupJoinPoints | |
CControlInstantiation | |
CConvertEnums | |
CConvertErrors | |
CCopySrcInfo | |
CCopyStructures | |
CCreateBuiltins | |
CCreateSpecializedTypes | |
CCreateStructInitializers | Converts some list expressions into struct initializers |
Ccstring | |
CDeclarationLookup | |
CDefaultArguments | |
CDefaultP4CConfiguration | |
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 | |
►CDoLocalCopyPropagation | |
CElimDead | |
CRewriteTableKeys | |
CDoMoveActionsToTables | |
CDontcareArgs | |
CDoOrderArguments | |
CDoRemoveActionParameters | |
CDoRemoveAssertAssume | |
CDoRemoveExits | |
CDoRemoveLeftSlices | |
CDoRemoveMiss | |
CDoRemoveParserControlFlow | Converts if statements in parsers into transitions |
CDoRemoveReturns | |
CDoRemoveSelectBooleans | |
CDoReplaceNewtype | |
CDoReplaceTuples | |
CDoReplaceTypedef | |
CDoResetHeaders | Explicitly invalidate uninitialized header variables |
CDoSetHeaders | |
CDoSimplifyComplexCondition | Pass that tries to simplify the conditions to a simple comparison of constants |
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 | |
CDoSimplifyNestedIf | |
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 | |
CDpdkProgramStructure | Collect information related to P4 programs targeting dpdk |
CDump | |
CDuplicateActions | |
CDynamicVisitor | |
CEbpfOptions | |
CEgress_Model | |
CElimCallExprInIfCond | Pass that eliminates call expressions in if statement’s condition |
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 |
CErrorCatalog | |
CErrorMessage | |
CErrorReporter | |
CErrorType | |
CEvaluator | |
CEvaluatorPass | |
CExpandEmit | |
CExpandLookahead | |
CExplain | Creates a string that describes the values of current type variables |
CExpressionEvaluator | |
CexprUses | |
CExternCall | |
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 | |
►Cflat_map | |
Cvalue_compare | |
CFlattenHeaders | |
CFlattenHeaderUnion | |
CFlattenInterfaceStructs | |
CFlattenLogMsg | |
CFrontEnd | |
CFrontEndPolicy | |
CFunctionCall | |
►CFunctionsInliner | |
CisLocalExpression | |
CFunctionSpecialization | Describes how a generic function is specialized |
CFunctionSpecializationMap | |
CGeneralInliner | Performs actual inlining work |
CGlobalActionReplacements | |
CGlobalCopyPropagation | |
CHalfOpenRange | |
CHandleNoMatch | |
CHandleValidityHeaderUnion | |
Chas_dbprint | |
Chas_dbprint< T, std::void_t< decltype(std::declval< T >().dbprint(std::declval< std::ostream & >()))> > | |
Chas_ostream_operator | |
Chas_ostream_operator< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> > | |
CHasExits | |
►Chash_vector_base | |
Cinternal | |
Clookup_cache | |
ChasSideEffects | |
CHasTableApply | Checks to see whether an IR node includes a table.apply() sub-expression |
ChdrFieldInfo | |
CHeaderTypeMaxLengthCalculator | |
Chex | |
Chexvec | |
CHierarchicalNames | |
CHSIndexContretizer | |
CHSIndexFinder | |
CHSIndexSimplifier | |
CHSIndexTransform | This class substitutes index of a header stack in all occurences of found header stack |
Chvec_map | |
Chvec_set | |
CICastable | |
CICompileContext | |
CIfInParser | Detect whether the program contains an 'if' statement in a parser |
CIHasBlock | |
CIHasDbPrint | |
Cindent_t | |
CIndexedLocation | Interface for locations that support an index operation |
CIngress_Model | |
CIngressInMetadataType_Model | |
CInline | |
CInlineActions | |
CInlineControlFlow | |
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 | |
CInspectDpdkProgram | |
CInspector | |
CInspectPortableProgram | |
CInspectPsaProgram | |
CInstanceBase | |
CInstantiateDirectCalls | |
CInstantiation | Used to resolve a Declaration_Instance |
CIOptionPragmaParser | |
CIsLikeLeftValue | |
CIsMask | |
CIsNonConstantArrayIndex | |
CIsValid | |
CIterKeys | |
CIterValues | |
CJsonBoolean | |
CJsonData | |
CJSONGenerator | |
CJSONLoader | |
CJsonNull | |
CJsonNumber | |
CJsonObject | |
CJsonString | |
CJsonVector | |
CKeyIsSimple | |
CKeyNameGenerator | |
CKeySideEffect | |
Cloc_t | |
CLocalCopyPropagation | |
CLocalizeActions | |
CLocalizeAllActions | |
CLocationPath | |
CLocationSet | |
CLogAbbrev | |
CLTBitMatrix | |
CMapForKey | |
CMarshaledFrom | |
Cmatch_t | |
CMatchRegister | |
CMethodInstance | |
CMidEndLast | |
CMinimalNameGenerator | |
CMissingIdAssigner | |
CModifier | |
CMoveActionsToTables | |
CMoveConstructors | |
CMoveDeclarations | |
CMoveInitializers | |
CMoveToElseAfterBranch | |
Cn4 | |
CNameGateways | |
CNameGenerator | |
CNestedStructMap | |
CNestedStructs | |
COnBacktrack | |
Conullstream | |
COrderArguments | |
►Cordered_map | |
Cvalue_compare | |
►Cordered_set | |
Csorted_iterator | |
COrPolicy | |
CP4CConfiguration | |
CP4CContext | |
CP4CContextWithOptions | |
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 |
CP4WriteContext | |
CPackageInstantiation | |
CPacketIn | |
CPacketOut | |
CParameterSubstitution | |
CParseAnnotationBodies | Clears a type map after calling a ParseAnnotations instance |
CParseAnnotations | |
CParseDpdkArchitecture | |
CParsePortableArchitecture | |
CParsePsaArchitecture | |
CParserErrorMessage | |
CParserInfo | Information produced for a parser by the symbolic evaluator |
CParserInstantiation | |
CParserOptions | |
CParserRewriter | |
CParserStateInfo | Information produced for a parser state by the symbolic evaluator |
CParserStructure | Information about a parser in the input program |
CParsersUnroll | |
CPassIf | |
►CPassManager | |
CVisitorRef | |
CPassRepeated | |
CPassRepeatUntil | |
►CPattern | |
CMatch | |
CPauseTrace | |
CPerInstanceSubstitutions | |
CPortableProgramStructure | |
CPredication | |
Cprimitive_info_t | |
CProcessDeparser | |
CProgramMap | |
CProgramPoint | Indicates a statement in the program |
CProgramPoints | |
CProgramStructure | |
CPsaProgramStructure | |
CPushContext | |
CRangeIter | |
CReadOnlyTypeInference | |
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 |
CRemoveAllUnusedHUDDeclarations | |
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 | |
Csafe_vector | |
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 | |
CSimplifyComplexConditionPolicy | |
CSimplifyControlFlow | |
CSimplifyDefUse | |
CSimplifyIfStatement | Top level PassManager that governs simplification of if statements |
CSimplifyKey | |
CSimplifyNestedIf | Top level PassManager that governs simplification of nested if statements in the deparser control block |
CSimplifyParsers | Remove unreachable parser states, and collapse simple chains of states |
CSimplifySelectCases | |
CSimplifySelectList | |
CSimplifySwitch | |
CSingleArgumentSelect | |
CSkipControlPolicy | |
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 |
CSplitFlowVisit | |
CSplitFlowVisit_base | |
CSplitFlowVisitVector | |
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 | |
Cstring_map | |
►CStringRef | |
CSplit | |
CStructInitializers | |
CStructLocation | |
CStructTypeReplacement | |
CSubstituteParameters | |
CSubstituteStructures | |
CSwitchAddDefault | |
CSymBitMatrix | |
CSymbolicArray | |
CSymbolicBool | |
CSymbolicEnum | |
CSymbolicError | |
CSymbolicException | |
CSymbolicExtern | |
CSymbolicHeader | |
CSymbolicHeaderUnion | |
CSymbolicInteger | |
CSymbolicPacketIn | |
CSymbolicStaticError | |
CSymbolicString | |
CSymbolicStruct | |
CSymbolicTuple | |
CSymbolicValue | |
CSymbolicValueFactory | |
CSymbolicVarbit | |
CSymbolicVoid | |
CSymRenameMap | |
CSynthesizeActions | |
CTableApplySolver | |
CTableHit | |
CTableInsertions | |
CTableKeyNames | |
CTablesInActions | |
CTablesInKeys | |
CTagGlobalActions | |
CTofinoModel | |
►CToP4 | |
CListPrint | |
CVecPrint | |
CTransform | |
CTupleLocation | |
►CTypeCheck | |
CAssignActionArgTypes | |
CAssignInitialTypes | |
CInferActionArgsBottomUp | |
CInferActionArgsTopDown | |
CInferExpressionsBottomUp | Bottom up type inferencing – set the types of expression nodes based on operands |
CInferExpressionsTopDown | Top down type inferencing – set the type of expression nodes based on their uses |
CMakeImplicitCastsExplicit | |
CTypeChecking | |
CTypeConstraint | |
CTypeConstraints | |
CTypeInference | |
►CTypeInferenceBase | |
CComparison | |
CTypeMap | |
CTypeOccursVisitor | |
CTypeSpecialization | |
CTypeSpecializationMap | |
CTypeSubstitution | |
CTypeSubstitutionVisitor | |
CTypeUnification | |
CTypeVariableSubstitution | |
CTypeVariableSubstitutionVisitor | |
CUniqueAndValidDest | |
CUniqueAttachedId | |
CUniqueId | |
CUniqueNames | |
CUniqueParameters | |
CUnnestSelectList | |
CUnparsedConstant | |
►CUnrollLoops | |
Cloop_bounds_t | |
CPolicy | |
CUsedDeclSet | |
CUselessCasts | |
CValidateMatchAnnotations | |
CValidateParsedProgram | |
CValidateStringAnnotations | |
CValidateTableProperties | |
CValidateValueSets | |
CValueMap | |
CVisitedKey | The main class for parsers' states key for visited checking |
CVisitFunctor | |
►CVisitor | |
CChangeTracker | Assists visitors in traversing the IR |
Cprofile_t | |
CTracker | Assists visitors in traversing the IR |
CVisitor_Context | |
CWithFieldsLocation | Base class for location sets that contain fields |
►NParde | |
►NLowered | |
CClearLoweredParserMatch | |
CComputeBufferRequirements | Computes the number of bytes which must be available for each parser match to avoid a stall |
CComputeInitZeroContainers | Computes containers that have fields relying on parser zero initialization |
CComputeLoweredDeparserIR | Generates lowered deparser IR with container references |
CComputeLoweredParserIR | Combines the high-level parser IR and the results of PHV allocation to produce a low-level, target-specific representation of the parser program |
CComputeMultiWriteContainers | Collects all containers that are written more than once by the parser |
CEliminateEmptyStates | Eliminates empty states |
CExtractSimplifier | Helper class that splits extract operations into multiple smaller extracts, such that each extract writes to exactly one PHV container |
CFindNegativeDeposits | Find all of the states that do a checksum deposit but also do not extract/shift before doing it (= the end_pos is negative) and also all of the states from which we can get via 0 shift to a state that does this negative checksum deposit |
CHoistCommonMatchOperations | After parser lowering, we have converted the parser IR from P4 semantic (action->match) to hardware semantic (match->action), there may still be opportunities where we can merge matches where we could not before lowering (without breaking the P4 semantic) |
CLowerDeparserIR | |
CLowerParserIR | |
►CMergeLoweredParserStates | After parser lowering, we have converted the parser IR from P4 semantic (action->match) to HW semantic (match->action), there may still be opportunities where we can merge states where we couldn't before lowering (without breaking the P4 semantic) |
CRightShiftCsumMask | |
CRightShiftPacketRVal | |
CRemoveNegativeDeposits | Updates the IR so that every checksum deposit can also shift by at least one |
CReplaceDeparserIR | Replace deparser IR with lowered version |
CReplaceParserIR | The pass that replaces an IR::BRN::Parser node with an IR::BFN::LoweredParser node |
CResolveParserConstants | Resolves constants in parser |
CRewriteEmitClot | Replace Emits covered in a CLOT with EmitClot |
CRightShiftCsumMask | |
CRightShiftPacketRVal | |
CSplitGreedyParserStates | This pass is used to ensure that there will be no conflicting partial_hdr_err_proc at the time the LoweredParserMatch is created |
CWarnTernaryMatchFields | Issues warning for invalid container participating in ternary match |
►NParser | |
CDef | |
CUse | |
CUseDef | |
►NPHV | The namespace encapsulating PHV-related stuff |
►Nlegacy | |
CActionPackingValidator | |
►NSlicing | |
►NInternal | |
CScSubRangeFsFinder | |
CAfterSplitConstraint | Constraints introduced on fieldslices of container sizes after splitting a slice list |
CDfsItrContext | |
CIteratorConfig | |
CIteratorInterface | The interface that the iterator must satisfy |
CItrContext | |
CNextSplitChoiceMetrics | |
CNextSplitTargetMetrics | |
CRangeLookupableConstraints | |
►Nv2 | |
CActionPackingValidator | |
►CAllocatorBase | |
CDfsListsAllocator | |
CDfsState | |
CAllocatorMetrics | AllocatorMetrics contains metrics useful in tracking Allocator efficiency and debug |
CAllocError | |
CAllocResult | |
CCollectPHVAllocationResult | |
CContScopeAllocResult | |
CCoPacker | CoPacker is the method that compute and generates copack constraints |
CCoPackHint | |
CCoPackResult | Result type that either has some copack hints, or an error |
CFsPacker | |
CGreedyAllocator | |
CGreedyTxScore | GreedyTxScore is the default allocation heuristics |
CGreedyTxScoreMaker | |
CIxbarFriendlyPacking | |
CKindSizeIndexedMap | |
CMetadataInitialization | |
CMinPackTxScore | MinPackTxScore prefers minimal packing |
CMinPackTxScoreMaker | Factory class for MinPackTxScore |
CNilTxScore | |
CNilTxScoreMaker | NilTxScoreMaker is a factory class to make nil score |
CParserPackingValidator | |
CPhvAllocation | |
CPhvKit | |
CScAllocAlignment | |
CScoreContext | ScoreContext is the allocation context that is updated and passed down during allocation |
CSearchConfig | Collection of allocation configurations that balances speed and performance of allocation |
CSomeContScopeAllocResult | |
CSrcPackVec | |
CTableReplayFriendlyPhvConstraints | |
►CTrivialAllocator | |
CPartialAllocResult | |
CPhvStatus | PhvStatus bookkeeper for containers |
CPreSlicingResult | |
CTxScore | TxScore is the interface of an allocation score |
CTxScoreMaker | TxScoreMaker is the interface of the factory class of TxScore |
CVision | |
CAbstractField | |
►CActionPackingValidatorInterface | |
CResult | |
CActionSourceTracker | ActionSourceTracker collects all source-to-destination for all field slices |
CAddAliasAllocation | Create allocation objects (PHV::AllocSlice) for alias source fields in preparation for assembly output |
CAlignedCluster | |
CAllocateTempsAndFinalizeLiverange | |
►CAllocation | |
CAvailableSpot | Available bits of this allocation |
CConditionalConstraintData | |
CContainerStatus | |
CAllocationReport | |
CAllocContext | Represents a PHV-allocation context: a parser, a table, or a deparser |
CAllocSetting | |
CAllocSlice | |
CAllocUtils | |
CClusterStats | An interface for gathering statistics common across each kind of cluster |
►CCollectTableKeys | |
CTableProp | |
CConcreteAllocation | |
CConstant | |
CContainer | |
CContainerEquivalenceTracker | |
CContainerGroup | |
CContainerOccupancy | |
CDarkInitEntry | |
CDarkInitPrimitive | |
CError | |
►CField | |
Cmirror_field_list_t | A mirror field points to its field list (one of eight) |
CFieldOperation | |
CFieldRange | |
CFieldSlice | |
CFieldSliceLiveRangeDB | |
CFieldUse | |
CFinalizePhysicalLiverange | |
CFreeSlice | |
CIFieldSliceLiveRangeDB | |
CLiveRange | |
CLiveRangeInfo | |
CLiveRangeSplit | |
CLiveRangeSplitOrFail | |
CMiniAlloc | |
►CPackingLayout | |
CFieldRangeOrPadding | |
CParserPackingValidatorInterface | |
CPragmas | |
CRotationalCluster | |
CSliceResult | The result of slicing a cluster |
CSourceOp | SourceOp represents a source operand |
CSuperCluster | |
CTempVarAllocResult | |
CTransaction | |
CType | |
CUpdateDeparserStage | |
CValidateAllocation | |
►NPragma | |
CPrettyPrint | |
►Nsolver | |
►Nsymbolic_bitvec | |
CBitVec | |
CBvContext | |
CExpr | |
CActionDarkSolver | |
CActionMochaSolver | |
CActionMoveSolver | |
CActionSolverBase | ActionSolverBase contains basic methods and states for all solvers |
CAssign | Assign is a set instruction that move operand src bits to dst |
CBitmaskedSet | |
CByteRotateMerge | |
CContainerSet | |
CContainerSpec | ContainerSpec container specification |
CDepositField | |
CError | Error type for all solver |
CInstruction | |
COperand | Operand represents either a source or a destination of an instruction |
CResult | Result contains either an error or all instructions for an action |
►Nstd | STL namespace |
Chash< P4::ClosedRange< Unit, Order > > | |
Chash< P4::ComputeDefUse::loc_t > | |
Chash< P4::cstring > | |
Chash< P4::HalfOpenRange< Unit, Order > > | |
Chash< P4::loc_t > | |
Chash< P4::ProgramPoint > | |
Chash< std::pair< T1, T2 > > | |
Chash< std::tuple< Types... > > | |
►NTofino | |
►CActionDataBus | |
►CUse | |
CRandomNumberGenerator | |
CInstructionMemory | |
►CIXBar | |
Chash_matrix_reqs | |
CHashDistAllocPostExpand | |
CHashDistIRUse | |
CHashDistUse | |
►CUse | |
CBits | |
CHashDistHash | |
CMeterAluHash | |
CProxyHashKey | |
CSaluInputSource | |
CMauAsmOutput | |
CMemories | |
CSetupAttachedTables | |
CAbstractDependencyInjector | Common functionality for injecting dependencies into a DependencyGraph |
CAbstractElimUnusedInstructions | |
►CActionAnalysis | |
CActionDataInfo | |
CActionParam | |
CAlignment | |
CConstantInfo | |
CConstantPosition | |
CContainerAction | |
CFieldAction | |
CTotalAlignment | |
►CActionDataBus | |
CFullShare | |
CLoc | |
►CUse | |
CReservedSpace | |
CActionMutuallyExclusive | |
CActionPhvConstraintCanPack | |
CActionPhvConstraintLogging | |
►CActionPhvConstraints | |
CActionSources | |
CAddAlwaysRun | |
CAddDarkInitialization | |
CAddDeparserMetadata | Add deparser parameters for standard metadata |
CAddEmptyTableSeqs | |
CAddInitsInMAU | |
CAddInitTable | |
CAddIntrinsicConstraints | |
CAddMauHeadersToHeaderMutexMatrix | Add the headers added in MAU (not parsed) found by FindPovAndParserErrorInMau into the header mutual exclusivity matrix |
CAddMetadataInitialization | |
CAddMetadataPOV | Create POV bits for output metadata (JBAY) |
CAddParserHeadersToHeaderMutexMatrix | Collect every header encountered in the parser and insert them into HeaderInfo. Addtionally, produce header level SymBitMatrix, where keys are header index (position of header in HeaderInfo.all_headers) and values are whether or not two headers are mutually exclusive |
CAddParserMatchDefs | |
CAddParserMetadata | Extend parsers to extract standard metadata |
CAddSelectorSalu | |
CAddSliceInitialization | |
CAddSpecialConstraints | |
CAddValidityBitSets | |
CAdjustEgressPacketLength | |
CAdjustExtract | Adjusts extractions that extract from fields that are serialized from phv container, i.e. marshaled, because there might be some junk bits before and after the field |
CAdjustIXBarExpression | |
CAdjustShiftInstructions | |
CAdjustStatefulInstructions | |
CAlias | |
CAllConstraints | |
Calloc_trace_cb_t | |
CAllocAlignment | AllocAlignment has two maps used by tryAllocSliceList |
CAllocateClot | |
CAllocateParserChecksums | |
CAllocateParserMatchRegisters | This pass performs the parser match register allocation |
►CAllocateParserState | |
CParserStateAllocator | |
CParserStateSplitter | |
CResetHeaderStackExtraction | |
CAllocatePHV | |
CAllocatePOVBits | |
CAllocationStrategy | |
CAllocInfo | |
CAllocResult | |
CAllocScore | |
CAnalyzeActionTables | |
CApplyGlobalPragmas | Collect and apply PHV-related global pragmas |
CArchSpec | |
CArithCompareAdjustment | |
CAssign | |
CAssignActionHandle | |
CAssignChain | |
►CAssignCounterLRTValues | |
CComputeLRT | |
CFindCounterRams | |
Cattached_entries_element_t | |
CAutoAlias | |
Cautoclone_ptr | |
CAutoIndent | |
CBackendCopyPropagation | |
CBfErrorReporter | |
Cbfn_hash_algorithm_ | |
CBFN_Options | |
CBFNContext | A CompileContext for bf-p4c |
CBFNOptionPragmaParser | |
Cbpf_elf_map | |
Cbpf_map | |
Cbpf_table | A helper structure used to describe attributes |
CBreakSliceListCtx | |
CBridgeContext | |
CBridgedPacking | The pass analyzes the usage of bridged headers and adjusts their packing |
CBruteForceAllocationStrategy | |
CBruteForceOptimizationStrategy | |
CBruteForceStrategyConfig | |
CBuildDominatorTree | |
CBuildGatewayMatch | |
CBuildMetadataOverlay | |
CBuildMutex | |
CBuildP4HashFunction | |
CBuildParserOverlay | |
CByNameLess | |
►CByteInfo | |
CInterleaveInfo | |
CCalcCriticalPathClusters | |
CCalcMaxPhysicalStages | |
CCalcParserCriticalPath | |
CCalculateNextTableProp | |
CCanBeIXBarExpr | |
Ccanon_name | |
►CCanonGatewayExpr | |
CNeedNegate | |
CCanPackErrorV2 | |
CCatchBacktrack | |
CCharacterizeParser | Prints various info about parser to the log file |
CCheckClotGroups | |
CCheckDuplicateAttached | |
CCheckFieldCorruption | |
CCheckForHeaders | |
CCheckForNamePrefix | |
CCheckForUnallocatedTemps | |
CCheckForUnimplementedFeatures | |
CCheckGatewayExpr | |
CCheckInvalidate | |
CCheckOperations | |
CCheckOutOfBufferExtracts | |
CCheckParserMultiWrite | Checks multiple writes to the same field on non-mutually exclusive paths |
CCheckPlacementPriorities | |
CCheckStatefulAlu | |
CChecksumInfo | |
CCheckTableNameDuplicate | |
CCheckUninitializedAndOverlayedReads | |
CCheckUnresolvedExtractSource | |
CCheckWriteModeConsistency | |
CClearPhvInfo | |
CClipTerminalTransition | |
Cclone_session_entry | |
CClot | |
CClotAdjuster | |
CClotCandidate | |
CClotInfo | |
CClustering | Builds "clusters" of field slices that must be placed in the same group |
CCoalesceLearning | Replaces consecutive extracts of the same container with a single extract |
Ccode | |
►CCollectBridgedFieldsUse | |
CUse | |
CCollectClotInfo | |
CCollectConstraints | |
CCollectDarkCandidates | |
CCollectEgressBridgedFields | |
CCollectExtractedTogetherFields | |
CCollectForceImmediateFields | |
►CCollectGatewayFields | |
Cinfo_t | |
CCollectGlobalPragma | |
CCollectHeaderStackInfo | |
CCollectHeaderValidity | |
CCollectIngressBridgedFields | |
CCollectInvalidatedHeaders | |
CCollectMatchFieldsAsGateway | |
CCollectMochaCandidates | |
CCollectNonDarkUses | |
CCollectPardeConstraints | |
CCollectParserChecksums | |
CCollectParserInfoImpl | |
►CCollectParserUseDef | |
CCollectDefs | |
CMapToUse | |
CCollectPhvFields | |
CCollectPhvInfo | Create and store a PHV::Field for each header and metadata field, and for TempVars. Allocate POV fields for header and metadata instances |
CCollectPhvLoggingInfo | |
CCollectPovBitToFields | |
►CCollectSourceInfoLogging | Pass that collects source information |
CSymbol | |
CCollectStridedHeaders | Collects header stacks that require strided allocation (in a parser loop) |
CCollectUserSpecifiedCriticalStates | |
CCollectWeakFields | |
CComputeDarkInitialization | |
CComputeDeadParserChecksums | |
►CComputeDefUse | Compute defuse info within P4Parser and P4Control blocks in the midend |
Cloc_t | |
CSetupJoinPoints | |
CComputeDependencies | |
CComputeFieldAlignments | |
CComputeFieldsRequiringInit | |
CComputeValuesAtDeparser | |
CConstantLogicValue | This inspector runs the expression analysis to search for the predicate that cannot happen. For example: |
CConstantsToActionData | |
CConstMirrorSessionOpt | |
CConstrainedField | Class representing PHV::Field with constraints and handle for constraint logging. Contains non-group constraints and a list of slices |
CConstrainedFieldMapBuilder | Initialize map of constrained fields by information present in PhvInfo and their slices based on slicing computed by SuperClusters |
CConstrainedSlice | Class representing FieldSlice with constraints, which has handle for constraint logging. Contains non-group constraints |
CConstrainSatAddResultTempVars | |
CConstraintSolver | The class uses the Z3 solver to generate packing for a set of PHV fields given a set of constraints |
CContainerSizeExtractor | |
CControlPathwaysToTable | |
CConverterAllowingRecirculate | |
CConvertFunnelShiftExtern | |
►CCopyBlockPragmas | Pass that copies block annotations to the block's tables |
CCopyToTables | |
CFindPragmasFromApply | |
CCopyPropParserDef | |
CCoreAllocation | |
CCountStridedHeaderRefs | |
Ccrc_alg_info_ | |
CCreateAliasesForVarbitHeaders | |
CCreateConstants | |
CCreateMathUnit | |
CCreateSaluApplyFunction | |
CCreateSaluInstruction | The pass creates SALU VLIW instructions |
CCreateThreadLocalInstances | |
►CDarkLiveRange | |
COrderedFieldInfo | |
CDarkLiveRangeMap | |
CDarkOverlay | |
►CDecidePlacement | |
CBackfill | |
CBacktrackManagement | |
CBacktrackPlacement | |
CFinalPlacement | |
CGroupPlace | |
CPlacementScore | |
CResourceBasedAlloc | |
Csave_placement_t | |
CDefaultNext | |
►CDeparseGraph | |
CNodeInfo | |
CDeparserAsmOutput | |
CDeparserCopyOpt | Top level PassManager |
CDeparserInspector | |
CDeparserModifier | |
CDeparserTransform | |
CDeparserZeroOptimization | |
►CDependencyGraph | |
CStageInfo | |
CDepStagesThruDomFrontier | |
CDetermineCandidateFields | |
CDetermineCandidateHeaders | |
►CDevice | |
CGatewaySpec | |
CStatefulAluSpec | |
CDirectedGraph | |
CDisableAutoInitMetadata | |
►CDoInstructionSelection | |
CSplitInstructions | |
CDoRemoveActionTables | Do the actual moves after the analysis has completed |
CDoTableLayout | |
CDotDumper | |
Cdp_packet | |
CDumpJsonGraph | |
CDumpParser | Dumps the entire parser graphs (can be used before and also after parser lowering) |
CDumpPipe | |
CDumpSeqTables | |
CDumpSplitStates | |
►CDumpTableFlowGraph | |
CCollectPhvReadsAndWrites | |
CPhvDetails | |
CDuplicateStates | |
Cdyn_vector | |
CDynamicDependencyMetrics | |
CDynamicNextTable | |
CEgressPacketLengthAdjust | |
CElimDeadParserChecksums | |
CEliminateAllButLastWrite | |
CEliminateNoopInstructions | |
►CElimUnused | |
CHeaders | |
CInstructions | |
CTables | Removes no-op tables that have the @hidden annotation |
CElimUnusedHeaderStackInfo | |
Cemit_vector_formatter | |
CEmitHashExpression | |
CEquivalentAlignExtractor | |
CEventLogger | |
CExcludeAliasedHeaderFields | |
CExcludeCsumOverlays | |
CExcludeCsumOverlaysPOV | |
CExcludeDeparsedIntrinsicMetadata | |
CExcludeDeparserOverlays | |
CExcludeMAUNotMutexHeaders | Walk through MAU in control flow order and find header level mutually exclusivity in the parser that could be invalidated during an action by keeping a record of all headers potentially active at any given point using active_headers . If a read/write to $valid or $stkvalid occurs, active_headers is updated conservatively |
CExcludeMAUOverlays | |
CExcludeParserLoopReachableFields | |
CExcludePragmaNoOverlayFields | |
CExpandInstructions | |
CExpressionsToHash | |
CExtractBridgeInfo | |
CFieldAlignment | |
►CFieldDefUse | |
CClearBeforeEgress | |
CCollectAliasDestinations | |
CFieldExtractInfo | Summarizes parser extracts for all fields |
CFieldGroup | |
CFieldLevelOptimisation | Using transitive closure of table flow graph, determine which PHV fields are referenced after a given table. This can be used to optimise ExcludeMAUNotMutexHeaders, as if a header mutex is invalidated at a specific location |
CFieldPackingOpportunity | |
CFieldPovAnalysis | |
CFieldSliceExtractInfo | Holds information relating to a field slice's extract |
CFieldSliceSet | Implements comparisons correctly |
CFieldUse | |
CFillFromBlockMap | |
CFinalizeStageAllocation | |
CFindAddedHeaderFields | |
CFindConstEntryTables | Find all tables which have a $valid or $stkvalid table key. If that table has const entries, determine which headers are active during each of the table's actions and store this information in HeaderInfo |
CFindCtrlDependencyGraph | |
►CFindDataDependencyGraph | |
Caccess_t | |
CAddDependencies | |
CUpdateAccess | |
CFindDependencyGraph | |
CFindExpressionsForFields | |
CFindFlowGraph | Computes a table control-flow graph for the IR |
CFindFlowGraphs | Computes a table control-flow graph for each gress in the IR |
CFindInitializationNode | |
CFindParserHeaderEncounterInfo | Based on dominators and post-dominators of parser states, determines which other headers have also surely been encountered if a given header has been encountered and which other headers have not been encountered if a given header has not been encountered |
►CFindParsingFrontier | |
CCutSet | |
CFrontier | |
CFindPayloadCandidates | |
CFindPovAndParserErrorInMau | Find if any header $valid bits are read/written to and if parser errors are handled in MAU. Additionally, if a field is found that belongs to a header not encountered in the parser, insert that header into HeaderInfo |
CFindRecirculatedAllowingPort | |
CFindUninitializedAndOverlayedReads | |
►CFixupMirroredIntrinsicMetadata | |
CFindMirroredIntrinsicMetadata | |
►CReimplementEgressEntryPoint | |
CInstallEntryStates | |
CRemoveExtracts | |
CFixupStatefulAlu | |
►CFlowGraph | |
CBFSPathFinder | Custom BFS visitor for finding a shortest path between two nodes |
CDumpTableDetails | |
Cfmt_state | |
►CFormatHash | |
COutput | |
CSliceWidth | |
CZeroHash | |
Cgalois_field_matrix_delta_ | |
CGatewayLayout | |
CGatewayOpt | |
►CGatewayRangeMatch | |
CSetupRanges | |
CGatherAlignmentConstraints | |
CGatherDeparserParameters | |
CGatherDigestFields | |
CGatherDynamicHashAlloc | |
CGatherPackingConstraintFromSinglePipeline | |
CGatherParserExtracts | |
CGatherPhase0Fields | |
CGatherReductionOrReqs | |
CGenerateOutputs | |
CGeneratePrimitiveInfo | |
CGenerateVLIWInstructions | |
CGetActionRequirements | |
CGetAllChecksumDest | |
CGetMaxBufferPos | |
CGetMinBufferPos | |
CGetSelectFieldInfo | |
CGreedyClotAllocator | |
CGroupConstraintExtractor | Blueprint for group constraint extractor classes |
CGTestTablePlacement | |
CGuaranteeHashDistSize | |
CHasAttachedMemory | |
CHasFullMatchCoverage | |
Chash_calc_output_ | |
Chash_calc_rotate_info | |
Chash_column_ | |
Chash_regs_ | |
Chash_seed_ | |
Chash_seed_delta_ | |
Chash_symmetric_info_ | Contains Symmetric hashing info for a hash input |
CHashFuncLoc | |
CHashGenSetup | |
CHashMaskAnnotations | Helper class to handle the @hash_mask() annotation |
CHeaderInfo | Data structure containing information about which headers are present in the parser and MAU, as well as additional properties for each header and mutual exclusivity information. The passes in HeaderMutex fill this data structure in a specific order, thus the order of these passes matter (e.g. FindConstEntryTable needs to run after passes which fill all_headers , mau_headers , and parser_headers ) |
CHeaderMutex | After identifying which headers in the P4 program are mutually exclusive in the parser, remove field mutexes between all fields of two headers if that mutual exclusivity is invalidated later during MAU control flow |
CHeaderNameMauInspector | MauInspector that can get the header name of the PHV field being visited in the member |
CHeaderPushPop | |
CHeaderValidityAnalysis | Identify headers marked as valid/invalid in MAU pipeline and find correlations between removal of headers of interest |
CIdentifyDeparserZeroCandidates | |
CIgnoreTableDeps | |
CIMemSpec | |
CImplementDeparserZero | |
CImplicitParserInit | |
CIncrementalPHVAllocation | |
CInferPayloadOffset | |
►CInferWriteMode | |
CCounterExample | |
CInjectActionExitAntiDependencies | |
CInjectControlDependencies | |
CInjectControlExitDependencies | |
CInjectDarkAntiDependencies | |
CInjectDepForAltPhvAlloc | |
CInjectMetadataControlDependencies | |
CInsertFrontierStates | |
CInsertInitSaveState | |
CInsertParsedValidBits | |
►CInsertParserClotChecksums | |
CCollectClotChecksumFields | |
CCreateParserPrimitives | |
CInsertParserPrimitives | |
CInsertParserCounterStall | |
CInsertStallState | |
CInsertTableToResetInvalidatedHeaders | |
CInstructionAdjustment | |
►CInstructionMemory | |
►CUse | |
CVLIW_Instruction | |
CInstructionSelection | |
CIntrinsicField | |
CIntrinsicParam | |
►CIXBar | |
Cfailure | |
CFieldInfo | |
CFieldManagement | |
CKeyInfo | |
CLoc | |
►CUse | |
CByte | |
CGroupInfo | |
CTotalInfo | |
CWay | |
Cixbar_init_ | |
Cixbar_input_ | |
Cixbar_input_.u | |
CIXBarExprSeed | |
CIXBarRandom | Compiler generated random number function for use as hash seed on the input crossbar |
CIXBarSpec | |
►CIXBarVerify | |
CGetCurrentUse | |
CJBayA0Device | |
CJBayA0PardeSpec | |
CJBayArchSpec | |
CJBayDevice | |
CJBayMauPowerSpec | |
CJBayMauSpec | |
CJBayMDevice | |
CJBayMMauPowerSpec | |
►CJbayNextTable | |
CFindNextTableUse | |
CJBayPardeSpec | |
CJbayPhvAnalysis | |
CJBayPhvSpec | |
CJBayUDevice | |
CJBayUMauPowerSpec | |
CLayoutChoices | |
CLayoutOption | |
CLiftCompare | |
CLiftEqual | |
CLiftLess | |
CLiveRangeReport | |
CLiveRangeShrinking | |
Clogfix | |
CLogFlexiblePacking | |
CLoggableEntity | Class with handle for logging constraints |
CLogRepackedHeaders | |
CLongBranchAllocFailed | |
CLoweredParserMatchAllocator | |
CLowerParser | |
CMapDestToInstruction | |
CMapFieldToExpr | |
CMapFieldToParserStates | Map field to the parser states in which they are extracted or assigned from checksums |
CMapTablesToActions | |
CMapTablesToIDs | |
CMarkDarkCandidates | |
CMarkDarkInitTables | |
CMarkFieldAsBridged | |
CMarkMutexPragmaFields | |
CMarkPaddingAsDeparsed | |
CMarkTimestampAndVersion | |
CMatchAction | |
►CMauAsmOutput | |
CEmitAction | |
CEmitAlwaysRunAction | |
CEmitAttached | |
CNextTableSet | |
CMauBacktracker | |
CMauGroupExtractor | |
CMauInspector | |
CMauModifier | |
CMauPowerSpec | |
CMauSpec | |
CMauTableInspector | |
CMauTransform | |
CMemoizeStage | |
►CMemories | |
►CUse | |
CGateway | |
CRow | |
CScmLoc | |
CWay | |
Cmemory_vector | |
CMergeAlwaysRunActions | |
CMergeDesugaredVarbitValids | |
CMergeInstructions | |
CMergeParserStates | Merges a chain of states into a large state (before parser lowering). Find the longest chain that: Forall states expect for the last tail state: |
CMetadataLiveRange | |
CMeterColorMapramAddress | |
CMeterSetup | |
CMirrorEgressParseEval | |
►CMoveToEgress | |
CFindIngressPacketMods | |
CMultipleApply | |
CMutexOverlay | |
CNameToTableMapBuilder | |
CNextTable | |
CNonMochaDarkFields | |
CNormalizeHashList | Normalize field lists in hashing expression (Hash.get primitive) |
CNormalizeParams | |
CNullifyAllStatefulCallPrim | |
CP4HashFunction | |
CP4ParserGraphs | Extends p4c's parser graph with various algorithms |
Cp4tc_ext_bpf_params | |
Cp4tc_ext_bpf_val | |
Cp4tc_ext_csum_params | |
Cp4tc_table_entry_act_bpf_params__local | |
Cp4tc_table_entry_create_bpf_params__local | |
CP4TestOptions | |
CPackConflicts | |
CPacketLengthEgressUseEval | |
CPackFlexibleHeaders | |
CPackWithConstraintSolver | |
CPadFixedSizeHeaders | |
CPairLess | |
CParamBinding | |
CPardeInspector | |
CPardeModifier | |
CPardePhvConstraints | |
CPardeSpec | |
CPardeTransform | |
CParserAsmOutput | |
CParserChecksumAllocator | |
CParserCopyProp | |
CParserCriticalPath | |
CParserCriticalPathResult | |
CParserDominatorBuilder | Builds parser graphs and determines the dominators and post-dominators of all parser states. Using this information, you can infer many things. For example: |
CParserGraphImpl | |
CParserHeaderSequences | Identify parsed header sequences |
CParserInspector | |
CParserModifier | |
CParserQuery | Collection of functions to check parser information |
CParserStateMap | |
CParserTransform | |
CParserUseDef | |
Cpcap_pkt | |
CPhase0AsmOutput | |
CPHV_AnalysisPass | |
CPHV_Field_Operations | Annotate each Field in PhvInfo with the instructions it's involved in |
CPhv_Parde_Mau_Use | |
CPhvAsmOutput | |
►CPhvInfo | |
CDumpPhvFields | Pretty-print all fields |
CSameContainerAllocConstraint | |
CStructInfo | PHV-related info about structs, i.e. collections of header or metadata fields |
►CPhvLogging | |
CCollectDefUseInfo | |
CPardeInfo | |
►CPhvSpec | |
CMauGroupType | |
CRangeSpec | |
►CPHVTrigger | |
Cfailure | |
CPhvUse | |
Cpna_global_metadata | |
Cpna_main_input_metadata_t | |
Cpna_main_output_metadata_t | |
Cpna_main_parser_input_metadata_t | |
Cpointer_wrap | |
CPostMidEndLast | |
►CPragmaAlias | |
CAliasDestination | |
CPragmaAtomic | |
►CPragmaBytePack | |
CAddConstraintResult | |
CPackConstraint | |
CPragmaContainerSize | |
CPragmaContainerType | |
CPragmaDeparserZero | |
CPragmaDoNotUseClot | Do_not_use_clot pragma support |
CPragmaMutuallyExclusive | |
CPragmaNoInit | Adds the no_init pragma to the specified fields with the specified gress |
CPragmaNoOverlay | |
CPragmaNoPack | |
CPragmaSolitary | |
CPredicationBasedControlEdges | |
CPrintDependencyGraph | |
CPrintPipe | |
CProhibitAtcamWideSelectors | |
CPropagateExtractConst | Run ResolveExtractConst pass until every IR::BFN::ConstantRVal which can be propagated is propagated as far as it can |
Cpsa_egress_deparser_input_metadata_t | |
Cpsa_egress_input_metadata_t | |
Cpsa_egress_output_metadata_t | |
Cpsa_egress_parser_input_metadata_t | |
Cpsa_global_metadata | |
Cpsa_ingress_input_metadata_t | |
Cpsa_ingress_output_metadata_t | |
Cpsa_ingress_parser_input_metadata_t | INGRESS data types |
CPseudoheader | |
CRandomExternUsedOncePerAction | |
CRangeEntries | |
CReachability | |
CReductionOrInfo | |
CRefCheckContext | |
CReinstateAliasSources | Replace AliasMember and AliasSlice nodes with their alias sources |
CRemoveActionTables | |
CRemoveEmptyControls | |
CRemoveEmptyStallState | |
CRemoveEmptyStartStateAndMatchExtract | |
CRemoveHeaderMutexesIfAllFieldsNotMutex | Many PHV field mutexes have already been removed due to other constraints prior to this pass. Therefore, though in theory two headers might be mutually exclusive, in practice they no longer are as all of their respectives fields are not mutually exclusive with each other. If none of the fields between two headers have a field mutex, clear the header level mutex from the header mutual exclusivity matrix |
CRemoveMetadataInits | |
CRemoveNoopGateway | |
CRemovePushInitialization | |
CRemoveUnnecessaryActionArgSlice | |
CRenameArchParams | Pass that governs replacement of the user-supplied parameter names with the corresponding parameter names defined in the architecture |
CRenameParam | Renames a parameter and all uses of that parameter |
CReplaceAllAliases | |
CReplaceFlexibleType | |
CReplaceMember | |
►CRerunTablePlacementTrigger | |
Cfailure | |
CResetInvalidatedChecksumHeaders | Top level PassManager |
►CResolveExtractSaves | |
CFindRVal | |
►CResolveNegativeExtract | For extracts with negative source, i.e. source is in an earlier state, adjust the state's shift amount, and possibly move extracts, so that the source is within current state's input buffer |
CAdjustShift | |
CAdjustShiftOutOfBuffer | |
CCollectNegativeExtractOutOfBufferStates | |
CCollectNegativeExtractStates | |
►CResolveOutOfBufferSaves | |
CGetMaxSavedRVal | |
CReversibleParserGraph | |
CRewriteDeparser | |
CRewriteParde | |
CRewriteParserMatchDefs | Looks for extracts into temporary local variables used in select statements |
CRewriteReductionOr | |
CRewriteWeakFieldWrites | |
CRunId | |
CSaluOredIf | This class detects a following pattern: |
CSccTopoSorter | |
CScoreContext | ScoreContext can compute a alloc score for an PHV::Transaction |
CSetupAttachedAddressing | |
CSharedIndirectAttachedAnalysis | |
CShift | |
CShiftPacketRVal | |
CSimplifyConditionalActionArg | |
CSimplifyReferences | |
Csk_buff | Simple descriptor which replaces the kernel sk_buff structure |
CSlice | |
CSliceExtracts | |
CSliceListAccumulator | |
CSortExtracts | |
CSourceInfoLogging | |
CSplitAttachedInfo | |
CSplitComplexGateways | |
CSplitInstructions | |
CSplitPadding | Splits padding after PHV allocation to prevent extracted padding spanning multiple containers |
CSplitParserState | Splits parser states into multiple states to account for HW resource constraints of a single parser state |
CSpreadGatewayAcrossSeq | |
CStackPushShims | Adds parser states to initialize the $stkvalid fields that are used to handle the push_front and pop_front primitives for header stacks |
►CStageUseEstimate | |
CRAM_counter | |
CStateExtractUsage | |
CStatefulAttachmentSetup | |
CStatefulConflict | |
CStaticEntriesConstProp | |
CSubstitutePackedHeaders | The pass substitutes bridged headers with adjusted ones and converts the IR into the backend form |
CSuperClusterBuilder | A helpfull class for building SuperClusters |
CSynth2PortSetup | |
CSynthesizePovEncoder | |
CTableAllocPass | |
CTableControlDeps | |
CTableDependencyGraphSummary | |
CTableFieldPackOptimization | |
CTableFindInjectedDependencies | |
CTableFindSeqDependencies | |
►CTableFormat | |
►CUse | |
Cmatch_group_use | |
CTCAM_use | |
CTableGraphEdge | |
CTableGraphField | |
►CTableGraphNode | |
CTableGraphNodeTable | |
CTableLayout | |
►CTableMatch | |
CProxyHashSlice | |
►CTableMutex | |
CShared | |
CTablePhvConstraints | |
►CTablePlacement | |
CFinalRerunTablePlacementTrigger | |
CPlaced | |
CRejectReason | |
CRewriteForSplitAttached | |
CSetupInfo | |
CTableInfo | |
CTableSeqInfo | |
CTablePrinter | |
CTableResourceAlloc | |
CTablesMutuallyExclusive | |
►CTableSummary | |
CPlacedTable | |
CTableTree | |
CTernaryMatchKeyConstraints | |
CThreadVisitor | |
CTofinoArchSpec | |
CTofinoDevice | |
CTofinoIMemSpec | |
CTofinoIXBarSpec | |
CTofinoMauPowerSpec | |
CTofinoMauSpec | |
CTofinoPardeSpec | |
CTofinoParserConstantExtract | |
CTofinoPhvSpec | |
CTofinoWriteContext | |
CToFunnelShiftInstruction | |
CTransactData | |
CTransformTables | |
CTypeComparator | |
CUnimplementedRegisterMethodCalls | |
CUpdateFieldAllocation | |
CUpdateParserWriteMode | |
CUT_hash_bucket | |
CUT_hash_handle | |
CUT_hash_table | |
CValidateActionProfileFormat | |
CValidateActions | |
CValidateAttachedOfSingleTable | |
CValidateTableSize | |
CValidToStkvalid | |
CValue | |
CVerifyParallelWritesAndReads | |
CVerifyUniqueDynamicHash | |
CVersionMap | |
CWriteParserError | |