|
| ConvertToBackendIR (const IR::ToplevelBlock *tlb, IR::TCPipeline *pipe, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, TCOptions &options) |
|
void | addExternTypeInstance (const IR::Declaration_Instance *decl, IR::TCExternInstance *tcExternInstance, cstring eName) |
|
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 | updatePnaDirectMeter (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> && !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 |
|
Backend code generation from midend IR