![]() |
P4C
The P4 Compiler
|
Inherits Visitor.
Inherited by BMV2::ActionConverter, BMV2::BuildResourceMap, BMV2::ControlConverter< arch >, BMV2::ConvertGlobals, BMV2::ConvertPsaToJson, BMV2::DeparserConverter, BMV2::DiscoverStructure, BMV2::ExpressionConverter, BMV2::HeaderConverter, BMV2::InspectPsaProgram, BMV2::ParsePsaArchitecture, BMV2::ParseV1Architecture, BMV2::ParserConverter, BMV2::SharedActionSelectorCheck< arch >, ControlFlowVisitor::SetupJoinPoints, DPDK::CheckExternInvocation, DPDK::CollectActionUses, DPDK::CollectAddOnMissTable, DPDK::CollectDirectCounterMeter, DPDK::CollectErrors, DPDK::CollectExternDeclaration, DPDK::CollectIPSecInfo, DPDK::CollectInternetChecksumInstance, DPDK::CollectMetadataHeaderInfo, DPDK::CollectTableInfo, DPDK::CollectUseDefInfo, DPDK::CollectUsedMetadataField, DPDK::ConvertLookahead::Collect, DPDK::ConvertStatementToDpdk, DPDK::ConvertToDpdkControl, DPDK::ConvertToDpdkParser, DPDK::ConvertToString, DPDK::DefActionValue, DPDK::DpdkContextGenerator, DPDK::EmitDpdkTableConfig, DPDK::ExpressionUnroll, DPDK::HaveNonHeaderChecksumArgs, DPDK::HaveNonHeaderLargeOperandAssignment, DPDK::IsDirectionMetadataUsed, DPDK::LogicalExpressionUnroll, DPDK::TypeWidthValidator, DPDK::ValidateAddOnMissExterns, DPDK::ValidateDirectCounterMeter, DPDK::ValidateOperandSize, EBPF::CodeGenInspector, EBPF::ConvertToEBPFControlPSA, EBPF::ConvertToEBPFDeparserPSA, EBPF::ConvertToEBPFParserPSA, EBPF::ConvertToEbpfPipeline, EBPF::EBPFTablePSATernaryTableMaskGenerator, EBPF::EBPFTablePsaPropertyVisitor, EBPF::PSAErrorCodesGen, InspectDpdkProgram, P4::AnalyzeParser, P4::ApplyOptionsPragmas, P4::CheckDeprecated, P4::CheckExternInvocationCommon, P4::CheckNamedArgs, P4::ClearTypeMap, P4::CompileTimeOperations, P4::ComputeDefUse, P4::ComputeParserCG, P4::ComputeWriteSet, P4::ContainsType, P4::ControlPlaneAPI::TypeSpecConverter, P4::Coverage::CollectNodes, P4::DiscoverActionsInlining, P4::DiscoverFunctionsInlining, P4::DiscoverInlining, P4::DoCheckConstants, P4::DoCheckCoreMethods, P4::Evaluator, P4::Explain, P4::ExpressionEvaluator, P4::FindActionParameters, P4::FindFunctionSpecializations, P4::FindGlobalActionUses, P4::FindHeaderTypesToReplace, P4::FindParameters, P4::FindRedundantParsers, P4::FindRepeatedActionUses, P4::FindSpecializations, P4::FindSymbols, P4::FindTypeSpecializations, P4::FindTypesInLogMsgInvocationToReplace, P4::FindTypesToReplace, P4::FindVariableValues, P4::HSIndexFinder, P4::HasExits, P4::HasTableApply, P4::IfInParser, P4::IsLikeLeftValue, P4::IsNonConstantArrayIndex, P4::KeyNameGenerator, P4::MidEndLast, P4::MinimalNameGenerator, P4::ReadsWrites, P4::ResolveReferences, P4::SideEffects, P4::TablesInActions, P4::TablesInKeys, P4::ToP4, P4::TypeOccursVisitor, P4::ValidateMatchAnnotations, P4::ValidateParsedProgram, P4::ValidateTableProperties, P4::ValidateValueSets, P4Tools::P4ProgramDCGCreator, P4Tools::P4Testgen::AbstractStepper, P4Tools::P4Testgen::Bmv2::MapDirectExterns, P4Tools::P4Testgen::Bmv2::RefersToParser, P4Tools::P4Testgen::ConcolicResolver, P4Tools::P4Testgen::CoverableNodesScanner, P4Tools::Z3Translator [virtual], P4V1::CheckIfMultiEntryPoint, P4V1::ComputeCallGraph, P4V1::ComputeTableCallGraph, P4V1::DetectDuplicates, P4V1::DiscoverStructure, P4V1::FindRecirculated, P4V1::getV1ModelVersion, ParseDpdkArchitecture, TC::ConvertToBackendIR, TC::ConvertToEBPFControlPNA, TC::ConvertToEBPFDeparserPNA, TC::ConvertToEBPFParserPNA, TC::ConvertToEbpfPipelineTC, TC::InspectPnaProgram, TC::IntrospectionGenerator, TC::PNAErrorCodesGen, TC::ParsePnaArchitecture, Test::NodeFinder< T >, TypeCheck::InferActionArgsBottomUp, TypeCheck::InferActionArgsTopDown, UBPF::UBPFModel::getUBPFModelVersion, exprUses, graphs::Graphs, and hasSideEffects.
Public Member Functions | |
| const IR::Node * | apply_visitor (const IR::Node *, const char *name=0) override |
| profile_t | init_apply (const IR::Node *root) override |
| virtual void | loop_revisit (const IR::Node *) |
| virtual void | postorder (const IR::Node *) |
| virtual bool | preorder (const IR::Node *) |
| virtual void | revisit (const IR::Node *) |
| void | revisit_visited () |
| bool | visit_in_progress (const IR::Node *n) const |
| void | visitAgain () const override |
| void | visitOnce () const override |
Public Member Functions inherited from Visitor | |
| virtual bool | check_global (cstring) |
| virtual void | clear_globals () |
| virtual Visitor * | clone () const |
| 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 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 = typename std::enable_if<std::is_base_of<Util::IHasSourceInfo, T>::value>::type, 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 = typename std::enable_if<std::is_base_of<Util::IHasSourceInfo, T>::value>::type, class... Args> | |
| void | warn (const int kind, const char *format, const T *node, Args... args) |
| bool | warning_enabled (int warning_kind) const |
Additional Inherited Members | |
Public Types inherited from Visitor | |
| typedef Visitor_Context | Context |
Static Public Member Functions inherited from Visitor | |
| static cstring | demangle (const char *) |
| static bool | warning_enabled (const Visitor *visitor, int warning_kind) |
Public Attributes inherited from Visitor | |
| const Visitor * | called_by = nullptr |
| cstring | internalName |
| SplitFlowVisit_base *& | split_link |
| SplitFlowVisit_base * | split_link_mem = nullptr |
Protected Member Functions inherited from Visitor | |
| virtual void | init_join_flows (const IR::Node *) |
| virtual bool | join_flows (const IR::Node *) |
| virtual void | post_join_flows (const IR::Node *, const IR::Node *) |
| void | visit_children (const IR::Node *, std::function< void()> fn) |
Protected Attributes inherited from Visitor | |
| bool | dontForwardChildrenBeforePreorder = false |
| bool | joinFlows = false |
| bool | visitDagOnce = true |