Inherits P4::Visitor, and P4::Backtrack.
Inherited by P4::AddMissingIdAnnotations, P4::BMV2::MidEnd, P4::BindTypeVariables, P4::CheckConstants, P4::CheckCoreMethods, 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::HandleNoMatch, 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::FixMultiEntryPoint, P4::ParseAnnotationBodies, P4::ParserRewriter, P4::ParsersUnroll, P4::PassIf [virtual]
, P4::PassRepeatUntil [virtual]
, P4::PassRepeated [virtual]
, P4::RemoveActionParameters, P4::RemoveAssertAssume, P4::RemoveDontcareArgs, P4::RemoveExits, P4::RemoveLeftSlices, P4::RemoveMiss, P4::RemoveParserIfs, P4::RemoveRedundantParsers, P4::RemoveReturns, P4::RemoveSelectBooleans, P4::ReplaceSelectRange, P4::ResetHeaders, P4::SetHeaders, P4::SimplifyComparisons, P4::SimplifyDefUse, P4::SimplifyKey, P4::SimplifyParsers, 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, and P4::graphs::MidEnd.
|
| 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 * P4::PassManager::apply_visitor |
( |
const IR::Node * | program, |
|
|
const char * | = 0 ) |
|
overridevirtual |
◆ backtrack()
bool P4::PassManager::backtrack |
( |
trigger & | trig | ) |
|
|
overridevirtual |
◆ clone()
◆ init_apply()
|
inlineoverrideprotectedvirtual |
◆ never_backtracks()
bool P4::PassManager::never_backtracks |
( |
| ) |
|
|
overridevirtual |