Inherits P4::Visitor, and P4::Backtrack.
Inherited by AddAlwaysRun, AddInitsInMAU, AddSelectorSalu, AddSliceInitialization, AllocateClot, ArithCompareAdjustment, AssignActionHandle, AssignCounterLRTValues, AutoAlias, BFN::ActionFunctionSetup, BFN::AddIntrinsicMetadata, BFN::AddMetadataParserStates, BFN::AddPsaBridgeMetadata, BFN::AddTnaBridgeMetadata, BFN::AdjustByteCountSetup, BFN::AlpmImplementation, BFN::AnnotateWithInHash, BFN::ApplyEvaluator, BFN::ArchTranslation, BFN::AttachTables, BFN::Backend, BFN::CheckDesignPattern, BFN::CheckDirectResourceInvocation, BFN::CheckVarbitAccess, BFN::CollectHardwareConstrainedFields, BFN::ConvertPhase0, BFN::DesugarVarbitExtract, BFN::DropPacketWithMirrorEngine, BFN::DynamicHashJson, BFN::ElimCasts, BFN::EliminateTuples, BFN::EvaluateForVar, BFN::EvaluatorPass, BFN::FindArchitecture, BFN::FixupMirrorMetadata, BFN::FixupResubmitMetadata, BFN::FoldConstantHashes, BFN::InitializeMirrorIOSelect, BFN::InjectTmpVar, BFN::MergePovBits, BFN::MidEnd, BFN::MidEndLast, BFN::NormalizeNativeProgram, BFN::PSA::ConvertNames, BFN::PSA::RewritePacketPath, BFN::PSA::RewriteParserVerify, BFN::PadFlexibleField, BFN::ParserEnforceDepthReq, BFN::PingPongGeneration, BFN::PortableSwitchTranslation, BFN::ProcessBackendPipe, BFN::RegisterReadWrite, BFN::RemoveActionParameters, BFN::RemoveSelectBooleans, BFN::ResolveSizeOfOperator, BFN::RewriteControlAndParserBlocks, BFN::RewriteEgressIntrinsicMetadataHeader, BFN::RewriteFlexibleStruct, BFN::SimpleSwitchTranslation, BFN::SimplifyEmitArgs, BFN::StrengthReduction, BFN::T2naArchTranslation, BFN::TnaArchTranslation, BFN::TranslatePhase0, BFN::TranslationFirst, BFN::TranslationLast, BFN::V1::ConvertNames, BFN::V1::InsertChecksumError, BFN::V1::ParserCounterSelectionConverter, BFN::V1::TranslateParserChecksums, BridgedPacking, BuildP4HashFunction, CalcParserCriticalPath, CheckForUnallocatedTemps, CheckParserMultiWrite, CheckUninitializedAndOverlayedReads, Clustering, CollectDarkCandidates, CollectParserUseDef, CollectPhvInfo, DarkOverlay, DeparserZeroOptimization, DumpJsonGraph, ElimUnused, ElimUnusedHeaderStackInfo, EliminateAllButLastWrite, FinalizeStageAllocation, FixupMirroredIntrinsicMetadata, FixupStatefulAlu, GTestTablePlacement, GatewayOpt, GatherAlignmentConstraints, GatherPackingConstraintFromSinglePipeline, GenerateOutputs, GuaranteeHashDistSize, HashGenSetup, HeaderMutex, InferPayloadOffset, InsertParserClotChecksums, InstructionAdjustment, InstructionSelection, LiveRangeShrinking, Logging::PassManager, MauPower::FinalizeMauPredDepsPower, MergeAlwaysRunActions, MergeDesugaredVarbitValids, MeterColorMapramAddress, MeterSetup, MultipleApply, MutexOverlay, P4::AddMissingIdAnnotations, P4::BMV2::MidEnd, P4::BindTypeVariables, P4::CheckConstants, P4::CheckCoreMethods, P4::CheckShadowing, P4::ConstantFolding, P4::ConvertEnums, P4::ConvertErrors, P4::DPDK::ByteAlignment, P4::DPDK::CollectLocalStructAndFlatten, P4::DPDK::CollectProgramStructure, P4::DPDK::ConvertActionSelectorAndProfile, P4::DPDK::ConvertInternetChecksum, P4::DPDK::ConvertLogicalExpression, P4::DPDK::ConvertLookahead, P4::DPDK::DpdkAddPseudoHeader, P4::DPDK::DpdkArchFirst, P4::DPDK::DpdkArchLast, P4::DPDK::DpdkHandleIPSec, P4::DPDK::DpdkMidEnd, P4::DPDK::EliminateHeaderCopy, P4::DPDK::EliminateUnusedAction, P4::DefaultArguments, P4::DefaultValues, P4::EBPF::Lower, P4::EliminateInvalidHeaders, P4::EliminateNewtype, P4::EliminateSerEnums, P4::EliminateSwitch, P4::EliminateTuples, P4::EliminateTypedef, P4::EvaluatorPass, P4::ExpandEmit, P4::ExpandLookahead, P4::FlattenHeaderUnion, P4::FlattenHeaders, P4::FlattenInterfaceStructs, P4::FlattenLogMsg, P4::GlobalCopyPropagation, P4::HSIndexSimplifier, P4::Inline, P4::InlineActions, P4::InlineFunctions, P4::InlinePass, P4::LocalCopyPropagation, P4::LocalizeAllActions, P4::MoveActionsToTables, P4::NestedStructs, P4::OrderArguments, P4::P4Test::MidEnd, P4::P4Tools::MidEnd, P4::P4V1::Converter, P4::P4V1::FixChecksum, P4::P4V1::FixMultiEntryPoint, P4::P4V1::FixParserCounter, P4::P4V1::InsertChecksumError, P4::P4V1::PostTranslationFix, P4::P4V1::TnaConverter, P4::ParseAnnotationBodies, P4::ParserRewriter, P4::ParsersUnroll, P4::PassIf [virtual]
, P4::PassRepeatUntil [virtual]
, P4::PassRepeated [virtual]
, P4::RemoveActionParameters, P4::RemoveAllUnusedHUDDeclarations, P4::RemoveAssertAssume, P4::RemoveDontcareArgs, P4::RemoveExits, P4::RemoveLeftSlices, P4::RemoveMiss, P4::RemoveParserIfs, P4::RemoveRedundantParsers, P4::RemoveReturns, P4::RemoveSelectBooleans, P4::ResetHeaders, P4::SetHeaders, P4::SimplifyComparisons, P4::SimplifyDefUse, P4::SimplifyIfStatement, P4::SimplifyKey, P4::SimplifyNestedIf, P4::SimplifySelectCases, P4::SimplifySelectList, P4::SimplifySwitch, P4::SingleArgumentSelect, P4::SpecializeGenericFunctions, P4::StaticAssert, P4::StrengthReduction, P4::StructInitializers, P4::SynthesizeActions, P4::TC::Backend, P4::TableHit, P4::TableKeyNames, P4::TypeCheck, P4::TypeChecking, P4::UniqueNames, P4::UniqueParameters, P4::UselessCasts, P4::graphs::MidEnd, PHV::AllocateTempsAndFinalizeLiverange, PHV::FieldSliceLiveRangeDB, PHV::Pragmas, PHV::v2::MetadataInitialization, PackConflicts, PackFlexibleHeaders, Parde::Lowered::LowerDeparserIR, Parde::Lowered::LowerParserIR, ParserCopyProp, PostMidEndLast, RemoveActionTables, ResetInvalidatedChecksumHeaders, ResolveNegativeExtract, RewriteParserMatchDefs, SetupAttachedAddressing, SplitAttachedInfo, SplitParserState, StatefulAttachmentSetup, SubstitutePackedHeaders, TableFindInjectedDependencies, TableLayout, TablePhvConstraints, TablePlacement, and UpdateParserWriteMode.
|
| PassManager (const PassManager &)=default |
|
| PassManager (const std::initializer_list< VisitorRef > &init) |
|
| PassManager (PassManager &&)=default |
|
void | addDebugHook (DebugHook h, bool recursive=false) |
|
void | addDebugHooks (std::vector< DebugHook > hooks, bool recursive=false) |
|
void | addPasses (const std::initializer_list< VisitorRef > &init) |
|
const IR::Node * | apply_visitor (const IR::Node *, const char *=0) override |
|
bool | backtrack (trigger &trig) override |
|
PassManager * | clone () const override |
|
void | early_exit () |
|
void | listPasses (std::ostream &, cstring sep) const |
|
bool | never_backtracks () override |
|
void | removePasses (const std::vector< cstring > &exclude) |
|
void | setStopOnError (bool stop) |
|
virtual bool | check_clone (const Visitor *a) |
|
virtual bool | check_global (cstring) |
|
virtual void | clear_globals () |
|
virtual ControlFlowVisitor * | controlFlowVisitor () |
|
virtual void | end_apply () |
|
virtual void | end_apply (const IR::Node *root) |
|
virtual void | erase_global (cstring) |
|
template<class T > |
const T * | findContext () const |
|
template<class T > |
const T * | findContext (const Context *&c) const |
|
template<class T > |
const T * | findOrigCtxt () const |
|
template<class T > |
const T * | findOrigCtxt (const Context *&c) const |
|
virtual Visitor & | flow_clone () |
|
virtual void | flow_merge (Visitor &) |
|
virtual bool | flow_merge_closure (Visitor &) |
|
virtual void | flow_merge_global_from (cstring) |
|
virtual void | flow_merge_global_to (cstring) |
|
const Context * | getChildContext () const |
|
int | getChildrenVisited () const |
|
const Context * | getContext () const |
|
int | getContextDepth () const |
|
const IR::Node * | getCurrentNode () const |
|
template<class T > |
const T * | getCurrentNode () const |
|
const IR::Node * | getOriginal () const |
|
template<class T > |
const T * | getOriginal () const |
|
template<class T > |
const T * | getParent () const |
|
virtual bool | has_flow_joins () const |
|
profile_t | init_apply (const IR::Node *root, const Context *parent_context) |
|
bool | isInContext (const IR::Node *n) const |
|
virtual const char * | name () const |
|
template<class T > |
void | parallel_visit (const IR::Vector< T > &v, const char *name, int cidx) |
|
template<class T > |
void | parallel_visit (const IR::Vector< T > &v, const char *name=0) |
|
template<class T > |
void | parallel_visit (IR::Vector< T > &v, const char *name, int cidx) |
|
template<class T > |
void | parallel_visit (IR::Vector< T > &v, const char *name=0) |
|
void | print_context () const |
|
const Visitor & | setCalledBy (const Visitor *visitor) |
|
void | setName (const char *name) |
|
void | visit (const IR::Node &n, const char *name, int cidx) |
|
void | visit (const IR::Node &n, const char *name=0) |
|
void | visit (const IR::Node *&n, const char *name, int cidx) |
|
void | visit (const IR::Node *&n, const char *name=0) |
|
void | visit (const IR::Node *const &n, const char *name, int cidx) |
|
void | visit (const IR::Node *const &n, const char *name=0) |
|
void | visit (IR::Node &n, const char *name, int cidx) |
|
void | visit (IR::Node &n, const char *name=0) |
|
void | visit (IR::Node *&, const char *=0, int=0) |
|
template<class T , typename = std::enable_if_t<Util::has_SourceInfo_v<T> && !std::is_pointer_v<T>>, class... Args> |
void | warn (const int kind, const char *format, const T &node, Args &&...args) |
| The const ref variant of the above.
|
|
template<class T , typename = std::enable_if_t<Util::has_SourceInfo_v<T>>, class... Args> |
void | warn (const int kind, const char *format, const T *node, Args &&...args) |
|
bool | warning_enabled (int warning_kind) const |
|
|
safe_vector< DebugHook > | debugHooks |
|
safe_vector< Visitor * > | passes |
|
bool | running = false |
|
unsigned | seqNo = 0 |
|
bool | stop_on_error = true |
|
bool | dontForwardChildrenBeforePreorder = false |
|
bool | joinFlows = false |
|
bool | visitDagOnce = true |
|
◆ apply_visitor()
const IR::Node * PassManager::apply_visitor |
( |
const IR::Node * | program, |
|
|
const char * | = 0 ) |
|
overridevirtual |
◆ backtrack()
bool PassManager::backtrack |
( |
trigger & | trig | ) |
|
|
overridevirtual |
◆ clone()
◆ init_apply()
|
inlineoverrideprotectedvirtual |
◆ never_backtracks()
bool PassManager::never_backtracks |
( |
| ) |
|
|
overridevirtual |