P4C
The P4 Compiler
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123456]
 NActionData
 Nassoc
 NBFNThe namespace encapsulating Barefoot/Intel-specific stuff
 NConstraints
 NLogging
 NMauPower
 NMeterALU
 NP4TODO: this is not really specific to BMV2, it should reside somewhere else
 NParde
 NParser
 NPHVThe namespace encapsulating PHV-related stuff
 NPragma
 Nsolver
 NstdSTL namespace
 NTofino
 CAbstractDependencyInjectorCommon functionality for injecting dependencies into a DependencyGraph
 CAbstractElimUnusedInstructions
 CActionAnalysis
 CActionDataBus
 CActionMutuallyExclusive
 CActionPhvConstraintCanPack
 CActionPhvConstraintLogging
 CActionPhvConstraints
 CAddAlwaysRun
 CAddDarkInitialization
 CAddDeparserMetadataAdd deparser parameters for standard metadata
 CAddEmptyTableSeqs
 CAddInitsInMAU
 CAddInitTable
 CAddIntrinsicConstraints
 CAddMauHeadersToHeaderMutexMatrixAdd the headers added in MAU (not parsed) found by FindPovAndParserErrorInMau into the header mutual exclusivity matrix
 CAddMetadataInitialization
 CAddMetadataPOVCreate POV bits for output metadata (JBAY)
 CAddParserHeadersToHeaderMutexMatrixCollect 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
 CAddParserMetadataExtend parsers to extract standard metadata
 CAddSelectorSalu
 CAddSliceInitialization
 CAddSpecialConstraints
 CAddValidityBitSets
 CAdjustEgressPacketLength
 CAdjustExtractAdjusts 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
 CAllocAlignmentAllocAlignment has two maps used by tryAllocSliceList
 CAllocateClot
 CAllocateParserChecksums
 CAllocateParserMatchRegistersThis pass performs the parser match register allocation
 CAllocateParserState
 CAllocatePHV
 CAllocatePOVBits
 CAllocationStrategy
 CAllocInfo
 CAllocResult
 CAllocScore
 CAnalyzeActionTables
 CApplyGlobalPragmasCollect and apply PHV-related global pragmas
 CArchSpec
 CArithCompareAdjustment
 CAssign
 CAssignActionHandle
 CAssignChain
 CAssignCounterLRTValues
 Cattached_entries_element_t
 CAutoAlias
 Cautoclone_ptr
 CAutoIndent
 CBackendCopyPropagation
 CBfErrorReporter
 Cbfn_hash_algorithm_
 CBFN_Options
 CBFNContextA CompileContext for bf-p4c
 CBFNOptionPragmaParser
 Cbpf_elf_map
 Cbpf_map
 Cbpf_tableA helper structure used to describe attributes
 CBreakSliceListCtx
 CBridgeContext
 CBridgedPackingThe pass analyzes the usage of bridged headers and adjusts their packing
 CBruteForceAllocationStrategy
 CBruteForceOptimizationStrategy
 CBruteForceStrategyConfig
 CBuildDominatorTree
 CBuildGatewayMatch
 CBuildMetadataOverlay
 CBuildMutex
 CBuildP4HashFunction
 CBuildParserOverlay
 CByNameLess
 CByteInfo
 CCalcCriticalPathClusters
 CCalcMaxPhysicalStages
 CCalcParserCriticalPath
 CCalculateNextTableProp
 CCanBeIXBarExpr
 Ccanon_name
 CCanonGatewayExpr
 CCanPackErrorV2
 CCatchBacktrack
 CCharacterizeParserPrints various info about parser to the log file
 CCheckClotGroups
 CCheckDuplicateAttached
 CCheckFieldCorruption
 CCheckForHeaders
 CCheckForNamePrefix
 CCheckForUnallocatedTemps
 CCheckForUnimplementedFeatures
 CCheckGatewayExpr
 CCheckInvalidate
 CCheckOperations
 CCheckOutOfBufferExtracts
 CCheckParserMultiWriteChecks 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
 CClusteringBuilds "clusters" of field slices that must be placed in the same group
 CCoalesceLearningReplaces consecutive extracts of the same container with a single extract
 Ccode
 CCollectBridgedFieldsUse
 CCollectClotInfo
 CCollectConstraints
 CCollectDarkCandidates
 CCollectEgressBridgedFields
 CCollectExtractedTogetherFields
 CCollectForceImmediateFields
 CCollectGatewayFields
 CCollectGlobalPragma
 CCollectHeaderStackInfo
 CCollectHeaderValidity
 CCollectIngressBridgedFields
 CCollectInvalidatedHeaders
 CCollectMatchFieldsAsGateway
 CCollectMochaCandidates
 CCollectNonDarkUses
 CCollectPardeConstraints
 CCollectParserChecksums
 CCollectParserInfoImpl
 CCollectParserUseDef
 CCollectPhvFields
 CCollectPhvInfoCreate and store a PHV::Field for each header and metadata field, and for TempVars. Allocate POV fields for header and metadata instances
 CCollectPhvLoggingInfo
 CCollectPovBitToFields
 CCollectSourceInfoLoggingPass that collects source information
 CCollectStridedHeadersCollects header stacks that require strided allocation (in a parser loop)
 CCollectUserSpecifiedCriticalStates
 CCollectWeakFields
 CComputeDarkInitialization
 CComputeDeadParserChecksums
 CComputeDefUseCompute defuse info within P4Parser and P4Control blocks in the midend
 CComputeDependencies
 CComputeFieldAlignments
 CComputeFieldsRequiringInit
 CComputeValuesAtDeparser
 CConstantLogicValueThis inspector runs the expression analysis to search for the predicate that cannot happen. For example:
 CConstantsToActionData
 CConstMirrorSessionOpt
 CConstrainedFieldClass representing PHV::Field with constraints and handle for constraint logging. Contains non-group constraints and a list of slices
 CConstrainedFieldMapBuilderInitialize map of constrained fields by information present in PhvInfo and their slices based on slicing computed by SuperClusters
 CConstrainedSliceClass representing FieldSlice with constraints, which has handle for constraint logging. Contains non-group constraints
 CConstrainSatAddResultTempVars
 CConstraintSolverThe class uses the Z3 solver to generate packing for a set of PHV fields given a set of constraints
 CContainerSizeExtractor
 CControlPathwaysToTable
 CConverterAllowingRecirculate
 CConvertFunnelShiftExtern
 CCopyBlockPragmasPass that copies block annotations to the block's tables
 CCopyPropParserDef
 CCoreAllocation
 CCountStridedHeaderRefs
 Ccrc_alg_info_
 CCreateAliasesForVarbitHeaders
 CCreateConstants
 CCreateMathUnit
 CCreateSaluApplyFunction
 CCreateSaluInstructionThe pass creates SALU VLIW instructions
 CCreateThreadLocalInstances
 CDarkLiveRange
 CDarkLiveRangeMap
 CDarkOverlay
 CDecidePlacement
 CDefaultNext
 CDeparseGraph
 CDeparserAsmOutput
 CDeparserCopyOptTop level PassManager
 CDeparserInspector
 CDeparserModifier
 CDeparserTransform
 CDeparserZeroOptimization
 CDependencyGraph
 CDepStagesThruDomFrontier
 CDetermineCandidateFields
 CDetermineCandidateHeaders
 CDevice
 CDirectedGraph
 CDisableAutoInitMetadata
 CDoInstructionSelection
 CDoRemoveActionTablesDo the actual moves after the analysis has completed
 CDoTableLayout
 CDotDumper
 Cdp_packet
 CDumpJsonGraph
 CDumpParserDumps the entire parser graphs (can be used before and also after parser lowering)
 CDumpPipe
 CDumpSeqTables
 CDumpSplitStates
 CDumpTableFlowGraph
 CDuplicateStates
 Cdyn_vector
 CDynamicDependencyMetrics
 CDynamicNextTable
 CEgressPacketLengthAdjust
 CElimDeadParserChecksums
 CEliminateAllButLastWrite
 CEliminateNoopInstructions
 CElimUnused
 CElimUnusedHeaderStackInfo
 Cemit_vector_formatter
 CEmitHashExpression
 CEquivalentAlignExtractor
 CEventLogger
 CExcludeAliasedHeaderFields
 CExcludeCsumOverlays
 CExcludeCsumOverlaysPOV
 CExcludeDeparsedIntrinsicMetadata
 CExcludeDeparserOverlays
 CExcludeMAUNotMutexHeadersWalk 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
 CFieldExtractInfoSummarizes parser extracts for all fields
 CFieldGroup
 CFieldLevelOptimisationUsing 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
 CFieldSliceExtractInfoHolds information relating to a field slice's extract
 CFieldSliceSetImplements comparisons correctly
 CFieldUse
 CFillFromBlockMap
 CFinalizeStageAllocation
 CFindAddedHeaderFields
 CFindConstEntryTablesFind 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
 CFindDependencyGraph
 CFindExpressionsForFields
 CFindFlowGraphComputes a table control-flow graph for the IR
 CFindFlowGraphsComputes a table control-flow graph for each gress in the IR
 CFindInitializationNode
 CFindParserHeaderEncounterInfoBased 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
 CFindPayloadCandidates
 CFindPovAndParserErrorInMauFind 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
 CFixupStatefulAlu
 CFlowGraph
 Cfmt_state
 CFormatHash
 Cgalois_field_matrix_delta_
 CGatewayLayout
 CGatewayOpt
 CGatewayRangeMatch
 CGatherAlignmentConstraints
 CGatherDeparserParameters
 CGatherDigestFields
 CGatherDynamicHashAlloc
 CGatherPackingConstraintFromSinglePipeline
 CGatherParserExtracts
 CGatherPhase0Fields
 CGatherReductionOrReqs
 CGenerateOutputs
 CGeneratePrimitiveInfo
 CGenerateVLIWInstructions
 CGetActionRequirements
 CGetAllChecksumDest
 CGetMaxBufferPos
 CGetMinBufferPos
 CGetSelectFieldInfo
 CGreedyClotAllocator
 CGroupConstraintExtractorBlueprint 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
 CHashMaskAnnotationsHelper class to handle the @hash_mask() annotation
 CHeaderInfoData 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)
 CHeaderMutexAfter 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
 CHeaderNameMauInspectorMauInspector that can get the header name of the PHV field being visited in the member
 CHeaderPushPop
 CHeaderValidityAnalysisIdentify 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
 CInjectActionExitAntiDependencies
 CInjectControlDependencies
 CInjectControlExitDependencies
 CInjectDarkAntiDependencies
 CInjectDepForAltPhvAlloc
 CInjectMetadataControlDependencies
 CInsertFrontierStates
 CInsertInitSaveState
 CInsertParsedValidBits
 CInsertParserClotChecksums
 CInsertParserCounterStall
 CInsertStallState
 CInsertTableToResetInvalidatedHeaders
 CInstructionAdjustment
 CInstructionMemory
 CInstructionSelection
 CIntrinsicField
 CIntrinsicParam
 CIXBar
 Cixbar_init_
 Cixbar_input_
 Cixbar_input_.u
 CIXBarExprSeed
 CIXBarRandomCompiler generated random number function for use as hash seed on the input crossbar
 CIXBarSpec
 CIXBarVerify
 CJBayA0Device
 CJBayA0PardeSpec
 CJBayArchSpec
 CJBayDevice
 CJBayMauPowerSpec
 CJBayMauSpec
 CJBayMDevice
 CJBayMMauPowerSpec
 CJbayNextTable
 CJBayPardeSpec
 CJbayPhvAnalysis
 CJBayPhvSpec
 CJBayUDevice
 CJBayUMauPowerSpec
 CLayoutChoices
 CLayoutOption
 CLiftCompare
 CLiftEqual
 CLiftLess
 CLiveRangeReport
 CLiveRangeShrinking
 Clogfix
 CLogFlexiblePacking
 CLoggableEntityClass with handle for logging constraints
 CLogRepackedHeaders
 CLongBranchAllocFailed
 CLoweredParserMatchAllocator
 CLowerParser
 CMapDestToInstruction
 CMapFieldToExpr
 CMapFieldToParserStatesMap field to the parser states in which they are extracted or assigned from checksums
 CMapTablesToActions
 CMapTablesToIDs
 CMarkDarkCandidates
 CMarkDarkInitTables
 CMarkFieldAsBridged
 CMarkMutexPragmaFields
 CMarkPaddingAsDeparsed
 CMarkTimestampAndVersion
 CMatchAction
 CMauAsmOutput
 CMauBacktracker
 CMauGroupExtractor
 CMauInspector
 CMauModifier
 CMauPowerSpec
 CMauSpec
 CMauTableInspector
 CMauTransform
 CMemoizeStage
 CMemories
 Cmemory_vector
 CMergeAlwaysRunActions
 CMergeDesugaredVarbitValids
 CMergeInstructions
 CMergeParserStatesMerges 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
 CMultipleApply
 CMutexOverlay
 CNameToTableMapBuilder
 CNextTable
 CNonMochaDarkFields
 CNormalizeHashListNormalize field lists in hashing expression (Hash.get primitive)
 CNormalizeParams
 CNullifyAllStatefulCallPrim
 CP4HashFunction
 CP4ParserGraphsExtends 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
 CParserDominatorBuilderBuilds parser graphs and determines the dominators and post-dominators of all parser states. Using this information, you can infer many things. For example:
 CParserGraphImpl
 CParserHeaderSequencesIdentify parsed header sequences
 CParserInspector
 CParserModifier
 CParserQueryCollection of functions to check parser information
 CParserStateMap
 CParserTransform
 CParserUseDef
 Cpcap_pkt
 CPhase0AsmOutput
 CPHV_AnalysisPass
 CPHV_Field_OperationsAnnotate each Field in PhvInfo with the instructions it's involved in
 CPhv_Parde_Mau_Use
 CPhvAsmOutput
 CPhvInfo
 CPhvLogging
 CPhvSpec
 CPHVTrigger
 CPhvUse
 Cpna_global_metadata
 Cpna_main_input_metadata_t
 Cpna_main_output_metadata_t
 Cpna_main_parser_input_metadata_t
 Cpointer_wrap
 CPostMidEndLast
 CPragmaAlias
 CPragmaAtomic
 CPragmaBytePack
 CPragmaContainerSize
 CPragmaContainerType
 CPragmaDeparserZero
 CPragmaDoNotUseClotDo_not_use_clot pragma support
 CPragmaMutuallyExclusive
 CPragmaNoInitAdds the no_init pragma to the specified fields with the specified gress
 CPragmaNoOverlay
 CPragmaNoPack
 CPragmaSolitary
 CPredicationBasedControlEdges
 CPrintDependencyGraph
 CPrintPipe
 CProhibitAtcamWideSelectors
 CPropagateExtractConstRun 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_tINGRESS data types
 CPseudoheader
 CRandomExternUsedOncePerAction
 CRangeEntries
 CReachability
 CReductionOrInfo
 CRefCheckContext
 CReinstateAliasSourcesReplace AliasMember and AliasSlice nodes with their alias sources
 CRemoveActionTables
 CRemoveEmptyControls
 CRemoveEmptyStallState
 CRemoveEmptyStartStateAndMatchExtract
 CRemoveHeaderMutexesIfAllFieldsNotMutexMany 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
 CRenameArchParamsPass that governs replacement of the user-supplied parameter names with the corresponding parameter names defined in the architecture
 CRenameParamRenames a parameter and all uses of that parameter
 CReplaceAllAliases
 CReplaceFlexibleType
 CReplaceMember
 CRerunTablePlacementTrigger
 CResetInvalidatedChecksumHeadersTop level PassManager
 CResolveExtractSaves
 CResolveNegativeExtractFor 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
 CResolveOutOfBufferSaves
 CReversibleParserGraph
 CRewriteDeparser
 CRewriteParde
 CRewriteParserMatchDefsLooks for extracts into temporary local variables used in select statements
 CRewriteReductionOr
 CRewriteWeakFieldWrites
 CRunId
 CSaluOredIfThis class detects a following pattern:
 CSccTopoSorter
 CScoreContextScoreContext can compute a alloc score for an PHV::Transaction
 CSetupAttachedAddressing
 CSharedIndirectAttachedAnalysis
 CShift
 CShiftPacketRVal
 CSimplifyConditionalActionArg
 CSimplifyReferences
 Csk_buffSimple descriptor which replaces the kernel sk_buff structure
 CSlice
 CSliceExtracts
 CSliceListAccumulator
 CSortExtracts
 CSourceInfoLogging
 CSplitAttachedInfo
 CSplitComplexGateways
 CSplitInstructions
 CSplitPaddingSplits padding after PHV allocation to prevent extracted padding spanning multiple containers
 CSplitParserStateSplits parser states into multiple states to account for HW resource constraints of a single parser state
 CSpreadGatewayAcrossSeq
 CStackPushShimsAdds parser states to initialize the $stkvalid fields that are used to handle the push_front and pop_front primitives for header stacks
 CStageUseEstimate
 CStateExtractUsage
 CStatefulAttachmentSetup
 CStatefulConflict
 CStaticEntriesConstProp
 CSubstitutePackedHeadersThe pass substitutes bridged headers with adjusted ones and converts the IR into the backend form
 CSuperClusterBuilderA helpfull class for building SuperClusters
 CSynth2PortSetup
 CSynthesizePovEncoder
 CTableAllocPass
 CTableControlDeps
 CTableDependencyGraphSummary
 CTableFieldPackOptimization
 CTableFindInjectedDependencies
 CTableFindSeqDependencies
 CTableFormat
 CTableGraphEdge
 CTableGraphField
 CTableGraphNode
 CTableLayout
 CTableMatch
 CTableMutex
 CTablePhvConstraints
 CTablePlacement
 CTablePrinter
 CTableResourceAlloc
 CTablesMutuallyExclusive
 CTableSummary
 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