|
| MauAsmOutput (const PhvInfo &phv, const IR::BFN::Pipe *pipe, const NextTable *nxts, const MauPower::FinalizeMauPredDepsPower *pmpr, const BFN_Options &options) |
|
| MauAsmOutput (const PhvInfo &phv, const IR::BFN::Pipe *pipe, const NextTable *nxts, const MauPower::FinalizeMauPredDepsPower *pmpr, const BFN_Options &options) |
|
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 |
|
|
typedef Visitor_Context | Context |
|
static ordered_set< UniqueId > | find_attached_ids (const IR::MAU::Table *tbl, const IR::MAU::AttachedMemory *am) |
|
static cstring | find_attached_name (const IR::MAU::Table *tbl, const IR::MAU::AttachedMemory *am) |
|
static cstring | demangle (const char *) |
|
static bool | warning_enabled (const Visitor *visitor, int warning_kind) |
|
const Visitor * | called_by = nullptr |
|
cstring | internalName |
|
SplitFlowVisit_base *& | split_link |
|
SplitFlowVisit_base * | split_link_mem = nullptr |
|
std::string | build_call (const IR::MAU::AttachedMemory *at_mem, const IR::MAU::BackendAttached *ba, const IR::MAU::Table *tbl) const |
|
std::string | build_meter_color_call (const IR::MAU::Meter *mtr, const IR::MAU::BackendAttached *ba, const IR::MAU::Table *tbl) const |
|
std::string | build_sel_len_call (const IR::MAU::Selector *as) const |
|
void | emit_action_data_alias (std::ostream &out, indent_t, const IR::MAU::Table *tbl, const IR::MAU::Action *af) const |
|
void | emit_action_data_bus (std::ostream &out, indent_t, const IR::MAU::Table *tbl, bitvec source) const |
|
void | emit_action_data_format (std::ostream &out, indent_t, const IR::MAU::Table *tbl, const IR::MAU::Action *af) const |
|
void | emit_always_run_action (std::ostream &out, const IR::MAU::Table *tbl, int stage, gress_t gress) const |
|
void | emit_atcam_match (std::ostream &out, indent_t, const IR::MAU::Table *tbl, std::stringstream &context_json_entries) const |
|
bool | emit_gateway (std::ostream &out, indent_t gw_indent, const IR::MAU::Table *tbl, bool hash_action, NextTableSet next_hit, NextTableSet &gw_miss) const |
|
void | emit_hash_dist (std::ostream &out, indent_t indent, const safe_vector< Tofino::IXBar::HashDistUse > *hash_dist_use, bool hashmod) const |
|
bool | emit_idletime (std::ostream &out, indent_t indent, const IR::MAU::Table *tbl, const IR::MAU::IdleTime *id) const |
|
void | emit_indirect_res_context_json (std::ostream &, indent_t indent, const IR::MAU::Table *tbl, std::stringstream &context_json_entries) const |
|
void | emit_ixbar (std::ostream &out, indent_t indent, const IR::MAU::Table *tbl, IXBar::Use::type_t type) const |
|
void | emit_ixbar (std::ostream &out, indent_t indent, const IR::MAU::Table *tbl, std::initializer_list< IXBar::Use::type_t > types) const |
|
virtual void | emit_memory (std::ostream &out, indent_t, const Memories::Use &, const IR::MAU::Table::Layout *l=nullptr, const TableFormat::Use *f=nullptr) const =0 |
|
void | emit_no_match_gateway (std::ostream &out, indent_t gw_indent, const IR::MAU::Table *tbl) const |
|
void | emit_random_seed (std::ostream &out, indent_t indent, const TableMatch *fmt) const |
|
void | emit_single_alias (std::ostream &out, std::string &sep, const ActionData::Parameter *param, le_bitrange adt_range, cstring alias, safe_vector< ActionData::Argument > &full_args, cstring action_name) const |
|
void | emit_static_entries (std::ostream &, indent_t indent, const IR::MAU::Table *tbl, std::stringstream &context_json_entries) const |
|
void | emit_table (std::ostream &out, const IR::MAU::Table *tbl, int stage, gress_t gress) const |
|
void | emit_table_context_json (std::ostream &out, indent_t, const IR::MAU::Table *tbl) const |
|
void | emit_table_hitmap (std::ostream &out, indent_t indent, const IR::MAU::Table *tbl, NextTableSet &next_hit, NextTableSet &gw_miss, bool no_match_hit, bool gw_can_miss) const |
|
void | emit_table_indir (std::ostream &out, indent_t, const IR::MAU::Table *tbl, const IR::MAU::TernaryIndirect *ti) const |
|
void | emit_ternary_match (std::ostream &out, indent_t, const TableFormat::Use &use) const |
|
virtual void | emit_ways (std::ostream &out, indent_t indent, const IXBar::Use *use, const Memories::Use *mem) const |
|
virtual bool | gateway_uses_inhibit_index (const IR::MAU::Table *) const |
|
std::string | indirect_address (const IR::MAU::AttachedMemory *) const |
|
std::string | indirect_pfe (const IR::MAU::AttachedMemory *) const |
|
NextTableSet | next_for (const IR::MAU::Table *tbl, cstring what) const |
|
void | next_table_non_action_map (const IR::MAU::Table *, safe_vector< NextTableSet > &next_table_map) const |
|
bool | require_ixbar (const IR::MAU::Table *tbl, IXBar::Use::type_t) const |
|
bool | require_ixbar (const IR::MAU::Table *tbl, std::initializer_list< IXBar::Use::type_t >) const |
|
std::string | stateful_counter_addr (IR::MAU::StatefulUse use) const |
|
virtual void | init_join_flows (const IR::Node *) |
|
virtual bool | join_flows (const IR::Node *) |
|
virtual void | post_join_flows (const IR::Node *, const IR::Node *) |
|
void | visit_children (const IR::Node *, std::function< void()> fn) |
|
const NextTable * | nxt_tbl |
|
const BFN_Options & | options |
|
const PhvInfo & | phv |
|
const IR::BFN::Pipe * | pipe |
|
const MauPower::FinalizeMauPredDepsPower * | power_and_mpr |
|
bool | dontForwardChildrenBeforePreorder = false |
|
bool | joinFlows = false |
|
bool | visitDagOnce = true |
|