P4C
The P4 Compiler
Transform Class Reference
Inheritance diagram for Transform:
Visitor BMV2::FixupChecksum BMV2::LowerExpressions BMV2::RemoveExpressionsFromSelects InlineControlFlow NameGateways P4::AbstractActionInliner P4::AbstractInliner P4::ApplyTypesToExpressions P4::BindTypeVariables P4::ClonePathExpressions P4::DoConstantFolding P4::DoConvertEnums P4::DoCopyStructures P4::DoExpandLookahead P4::DoHandleNoMatch P4::DoLocalCopyPropagation P4::DoLocalCopyPropagation::ElimDead P4::DoLocalCopyPropagation::RewriteTableKeys P4::DoMoveActionsToTables P4::DoRemoveActionParameters P4::DoRemoveLeftSlices P4::DoRemoveParserControlFlow P4::DoRemoveReturns P4::DoReplaceTuples P4::DoResetHeaders P4::DoSimplifyControlFlow P4::DoSimplifyDefUse P4::DoSimplifyExpressions P4::DoSimplifyKey P4::DoSimplifyParsers P4::DoSimplifySelectCases P4::DoSynthesizeActions P4::DoTableHit P4::DoTableKeyNames P4::DuplicateActions P4::InlineActionsDriver P4::InlineDriver P4::LocalizeActions P4::MoveDeclarations P4::MoveInitializers P4::Predication P4::RemoveNestedStructs P4::RemoveUnusedDeclarations P4::RenameSymbols P4::RewriteAllParsers P4::Specialize P4::StrengthReduction P4::SubstituteStructures P4::TagGlobalActions P4::TypeInference P4::TypeNameSubstitutionVisitor P4::TypeVariableSubstitutionVisitor P4::UnnestSelectList P4_14::InlineActions P4V1::ExpressionConverter TestTrans TestTrans TestTrans TypeCheck::AssignInitialTypes

Public Member Functions

const IR::Nodeapply_visitor (const IR::Node *, const char *name=0) override
 
profile_t init_apply (const IR::Node *root) override
 
virtual const IR::Nodepostorder (IR::Node *n)
 
virtual const IR::Nodepreorder (IR::Node *n)
 
void prune ()
 
virtual void revisit (const IR::Node *, const IR::Node *)
 
void revisit_visited ()
 
- Public Member Functions inherited from Visitor
virtual void end_apply ()
 
virtual void end_apply (const IR::Node *root)
 
template<class T >
const T * findContext (const Context *&c) const
 
template<class T >
const T * findContext () const
 
template<class T >
const T * findOrigCtxt (const Context *&c) const
 
template<class T >
const T * findOrigCtxt () const
 
virtual Visitorflow_clone ()
 
virtual void flow_dead ()
 
virtual void flow_merge (Visitor &)
 
int getChildrenVisited () const
 
const ContextgetContext () const
 
int getContextDepth () const
 
const IR::NodegetCurrentNode () const
 
template<class T >
const T * getCurrentNode () const
 
const IR::NodegetOriginal () const
 
template<class T >
const T * getOriginal () const
 
template<class T >
const T * getParent () const
 
virtual const char * name () const
 
void print_context () const
 
void setName (const char *name)
 
void visit (const IR::Node *&n, const char *name=0)
 
void visit (const IR::Node *const &n, const char *name=0)
 
void visit (const IR::Node *&n, const char *name, int cidx)
 
void visit (const IR::Node *const &n, const char *name, int cidx)
 
void visit (IR::Node *&, const char *=0, int=0)
 

Protected Member Functions

const IR::Nodetransform_child (const IR::Node *child)
 
- Protected Member Functions inherited from Visitor
virtual void init_join_flows (const IR::Node *)
 
virtual bool join_flows (const IR::Node *)
 
void visit_children (const IR::Node *, std::function< void()> fn)
 

Additional Inherited Members

- Public Attributes inherited from Visitor
const char * internalName = nullptr
 
- Protected Attributes inherited from Visitor
bool dontForwardChildrenBeforePreorder = false
 
bool joinFlows = false
 
bool visitDagOnce = true