| 
| 
  | ConvertToBackendIR (const IR::ToplevelBlock *tlb, IR::TCPipeline *pipe, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, TCOptions &options) | 
|   | 
| 
bool  | checkParameterDirection (const IR::TCAction *tcAction) | 
|   | 
| 
cstring  | externalName (const IR::IDeclaration *declaration) const | 
|   | 
| 
const IR::Expression *  | ExtractExpFromCast (const IR::Expression *exp) | 
|   | 
| 
unsigned int  | findMappedKernelMeta (const IR::Member *mem) | 
|   | 
| 
unsigned  | GetAccessNumericValue (std::string_view access) | 
|   | 
| 
unsigned  | getActionId (cstring actionName) const | 
|   | 
| 
std::pair< cstring, cstring > *  | GetAnnotatedAccessPath (const IR::Annotation *anno) | 
|   | 
| 
cstring  | getControlPathKeyAnnotation (const IR::StructField *field) | 
|   | 
| 
cstring  | getExternId (cstring externName) const | 
|   | 
| 
unsigned  | getExternInstanceId (cstring externName, cstring instanceName) const | 
|   | 
| 
cstring  | getPipelineName () | 
|   | 
| 
unsigned  | getTableId (cstring tableName) const | 
|   | 
| 
unsigned  | getTableKeysize (unsigned tableId) const | 
|   | 
| 
unsigned  | getTcType (const IR::StringLiteral *sl) | 
|   | 
| 
cstring  | HandleTableAccessPermission (const IR::P4Table *t) | 
|   | 
| 
safe_vector< const IR::TCKey * >  | HandleTypeNameStructField (const IR::StructField *field, const IR::Type_Extern *extn, const IR::Declaration_Instance *decl, int &kId, cstring annoName) | 
|   | 
| 
bool  | hasExecuteMethod (const IR::Type_Extern *extn) | 
|   | 
| 
bool  | isDuplicateAction (const IR::P4Action *action) | 
|   | 
| 
bool  | isDuplicateOrNoAction (const IR::P4Action *action) | 
|   | 
| 
bool  | isPnaMainInputMeta (const IR::Member *mem) | 
|   | 
| 
bool  | isPnaMainOutputMeta (const IR::Member *mem) | 
|   | 
| bool  | isPnaParserMeta (const IR::Member *mem) | 
|   | 
| 
void  | postorder (const IR::Declaration_Instance *d) override | 
|   | 
| 
void  | postorder (const IR::P4Action *a) override | 
|   | 
| 
void  | postorder (const IR::P4Program *p) override | 
|   | 
| 
void  | postorder (const IR::P4Table *t) override | 
|   | 
| 
void  | postorder (const IR::Type_Struct *ts) override | 
|   | 
| 
bool  | preorder (const IR::P4Program *p) override | 
|   | 
| 
safe_vector< const IR::TCKey * >  | processCounterControlPathKeys (const IR::Type_Struct *extern_control_path, const IR::Type_Extern *extn, const IR::Declaration_Instance *decl) | 
|   | 
| 
safe_vector< const IR::TCKey * >  | processExternConstructor (const IR::Type_Extern *extn, const IR::Declaration_Instance *decl, struct ExternInstance *instance) | 
|   | 
| 
safe_vector< const IR::TCKey * >  | processExternControlPath (const IR::Type_Extern *extn, const IR::Declaration_Instance *decl, cstring eName) | 
|   | 
| 
cstring  | processExternPermission (const IR::Type_Extern *ext) | 
|   | 
| 
void  | setPipelineName () | 
|   | 
| 
CounterType  | toCounterType (const int type) | 
|   | 
| 
void  | updateAddOnMissTable (const IR::P4Table *t) | 
|   | 
| 
void  | updateConstEntries (const IR::P4Table *t, IR::TCTable *tdef) | 
|   | 
| 
void  | updateDefaultHitAction (const IR::P4Table *t, IR::TCTable *tdef) | 
|   | 
| 
void  | updateDefaultMissAction (const IR::P4Table *t, IR::TCTable *tdef) | 
|   | 
| 
void  | updateMatchType (const IR::P4Table *t, IR::TCTable *tabledef) | 
|   | 
| 
void  | updatePnaDirectCounter (const IR::P4Table *t, IR::TCTable *tabledef, unsigned tentries) | 
|   | 
| 
void  | updateTimerProfiles (IR::TCTable *tabledef) | 
|   | 
| 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 | 
|   | 
| 
virtual bool  | check_global (cstring) | 
|   | 
| 
virtual void  | clear_globals () | 
|   | 
| 
virtual Visitor *  | clone () const | 
|   | 
| 
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>>, 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 | 
|   | 
Backend code generation from midend IR