| 
| 
  | ToP4 (std::ostream *outStream, bool showIR, cstring mainFile=nullptr) | 
|   | 
| 
  | ToP4 (Util::SourceCodeBuilder &builder, bool showIR, cstring mainFile=nullptr) | 
|   | 
| void  | end_apply (const IR::Node *node) override | 
|   | 
| Visitor::profile_t  | init_apply (const IR::Node *node) override | 
|   | 
| 
bool  | preorder (const IR::ActionList *v) override | 
|   | 
| 
bool  | preorder (const IR::ActionListElement *ale) override | 
|   | 
| 
bool  | preorder (const IR::Annotation *a) override | 
|   | 
| 
bool  | preorder (const IR::Annotations *a) override | 
|   | 
| 
bool  | preorder (const IR::Argument *arg) override | 
|   | 
| 
bool  | preorder (const IR::ArrayIndex *a) override | 
|   | 
| 
bool  | preorder (const IR::AssignmentStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::BlockStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::BoolLiteral *b) override | 
|   | 
| 
bool  | preorder (const IR::BreakStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::Cast *c) override | 
|   | 
| 
bool  | preorder (const IR::Constant *c) override | 
|   | 
| 
bool  | preorder (const IR::ConstructorCallExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::ContinueStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::Declaration_Constant *cst) override | 
|   | 
| 
bool  | preorder (const IR::Declaration_Instance *t) override | 
|   | 
| 
bool  | preorder (const IR::Declaration_MatchKind *d) override | 
|   | 
| 
bool  | preorder (const IR::Declaration_Variable *v) override | 
|   | 
| 
bool  | preorder (const IR::DefaultExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::Dots *e) override | 
|   | 
| 
bool  | preorder (const IR::EmptyStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::EntriesList *l) override | 
|   | 
| 
bool  | preorder (const IR::Entry *e) override | 
|   | 
| 
bool  | preorder (const IR::ExitStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::ExpressionValue *v) override | 
|   | 
| 
bool  | preorder (const IR::ForInStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::ForStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::Function *function) override | 
|   | 
| 
bool  | preorder (const IR::HeaderStackExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::IfStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::IndexedVector< IR::Declaration > *v) override | 
|   | 
| 
bool  | preorder (const IR::IndexedVector< IR::Declaration_ID > *v) override | 
|   | 
| 
bool  | preorder (const IR::IndexedVector< IR::Node > *v) override | 
|   | 
| 
bool  | preorder (const IR::IndexedVector< IR::ParserState > *v) override | 
|   | 
| 
bool  | preorder (const IR::IndexedVector< IR::StatOrDecl > *v) override | 
|   | 
| 
bool  | preorder (const IR::Invalid *e) override | 
|   | 
| 
bool  | preorder (const IR::InvalidHeader *e) override | 
|   | 
| 
bool  | preorder (const IR::InvalidHeaderUnion *e) override | 
|   | 
| 
bool  | preorder (const IR::Key *v) override | 
|   | 
| 
bool  | preorder (const IR::ListExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::Member *e) override | 
|   | 
| 
bool  | preorder (const IR::Method *p) override | 
|   | 
| 
bool  | preorder (const IR::MethodCallExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::MethodCallStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::Mux *a) override | 
|   | 
| 
bool  | preorder (const IR::NamedDots *e) override | 
|   | 
| 
bool  | preorder (const IR::NamedExpression *ne) override | 
|   | 
| virtual bool  | preorder (const IR::Node *) | 
|   | 
| 
bool  | preorder (const IR::Operation_Binary *b) override | 
|   | 
| 
bool  | preorder (const IR::Operation_Unary *u) override | 
|   | 
| 
bool  | preorder (const IR::P4Action *c) override | 
|   | 
| 
bool  | preorder (const IR::P4Control *c) override | 
|   | 
| 
bool  | preorder (const IR::P4ListExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::P4Parser *c) override | 
|   | 
| 
bool  | preorder (const IR::P4Program *program) override | 
|   | 
| 
bool  | preorder (const IR::P4Table *c) override | 
|   | 
| 
bool  | preorder (const IR::P4ValueSet *c) override | 
|   | 
| 
bool  | preorder (const IR::Parameter *p) override | 
|   | 
| 
bool  | preorder (const IR::ParameterList *p) override | 
|   | 
| 
bool  | preorder (const IR::ParserState *s) override | 
|   | 
| 
bool  | preorder (const IR::Path *p) override | 
|   | 
| 
bool  | preorder (const IR::PathExpression *p) override | 
|   | 
| 
bool  | preorder (const IR::Property *p) override | 
|   | 
| 
bool  | preorder (const IR::ReturnStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::SelectCase *e) override | 
|   | 
| 
bool  | preorder (const IR::SelectExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::Slice *slice) override | 
|   | 
| 
bool  | preorder (const IR::StringLiteral *s) override | 
|   | 
| 
bool  | preorder (const IR::StructExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::SwitchCase *s) override | 
|   | 
| 
bool  | preorder (const IR::SwitchStatement *s) override | 
|   | 
| 
bool  | preorder (const IR::TableProperties *t) override | 
|   | 
| 
bool  | preorder (const IR::This *e) override | 
|   | 
| 
bool  | preorder (const IR::Type *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_BaseList *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Bits *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Boolean *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Control *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Dontcare *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Enum *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Error *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Extern *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Header *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_HeaderUnion *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_InfInt *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Name *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Newtype *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Package *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Parser *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_SerEnum *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Specialized *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_SpecializedCanonical *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Stack *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_String *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Struct *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Typedef *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Unknown *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Var *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Varbits *t) override | 
|   | 
| 
bool  | preorder (const IR::Type_Void *t) override | 
|   | 
| 
bool  | preorder (const IR::TypeNameExpression *e) override | 
|   | 
| 
bool  | preorder (const IR::TypeParameters *p) override | 
|   | 
| 
bool  | preorder (const IR::V1Program *) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::ActionListElement > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Annotation > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Argument > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Entry > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Expression > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::KeyElement > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Method > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Node > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::SelectCase > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::SwitchCase > *v) override | 
|   | 
| 
bool  | preorder (const IR::Vector< IR::Type > *v) override | 
|   | 
| 
bool  | process (const IR::Type_StructLike *t, const char *name) | 
|   | 
| 
void  | setListTerm (const char *start, const char *end) | 
|   | 
| 
void  | setnoIncludesArg (bool condition) | 
|   | 
| const IR::Node *  | apply_visitor (const IR::Node *, const char *name=0) override | 
|   | 
| 
virtual void  | loop_revisit (const IR::Node *) | 
|   | 
| 
virtual void  | postorder (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 | 
|   | 
| 
virtual bool  | check_global (cstring) | 
|   | 
| 
virtual void  | clear_globals () | 
|   | 
| 
virtual Visitor *  | clone () const | 
|   | 
| 
virtual ControlFlowVisitor *  | controlFlowVisitor () | 
|   | 
| 
virtual void  | end_apply () | 
|   | 
| 
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>>, 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 | 
|   |