P4C
The P4 Compiler
Loading...
Searching...
No Matches
Tofino::MauAsmOutput Class Reference
Inheritance diagram for Tofino::MauAsmOutput:
[legend]

Public Member Functions

 MauAsmOutput (const PhvInfo &phv, const IR::BFN::Pipe *pipe, const NextTable *nxts, const MauPower::FinalizeMauPredDepsPower *pmpr, const BFN_Options &options)
 
- Public Member Functions inherited from MauAsmOutput
 MauAsmOutput (const PhvInfo &phv, const IR::BFN::Pipe *pipe, const NextTable *nxts, const MauPower::FinalizeMauPredDepsPower *pmpr, const BFN_Options &options)
 
- Public Member Functions inherited from P4::Inspector
const IR::Nodeapply_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
 
- Public Member Functions inherited from P4::Visitor
virtual bool check_global (cstring)
 
virtual void clear_globals ()
 
virtual Visitorclone () const
 
virtual ControlFlowVisitorcontrolFlowVisitor ()
 
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 Visitorflow_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 ContextgetChildContext () const
 
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 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 VisitorsetCalledBy (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
 

Additional Inherited Members

- Public Types inherited from P4::Visitor
typedef Visitor_Context Context
 
- Static Public Member Functions inherited from MauAsmOutput
static ordered_set< UniqueIdfind_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 Public Member Functions inherited from P4::Visitor
static cstring demangle (const char *)
 
static bool warning_enabled (const Visitor *visitor, int warning_kind)
 
- Public Attributes inherited from P4::Visitor
const Visitorcalled_by = nullptr
 
cstring internalName
 
SplitFlowVisit_base *& split_link
 
SplitFlowVisit_basesplit_link_mem = nullptr
 
- Protected Member Functions inherited from MauAsmOutput
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
 
- Protected Member Functions inherited from P4::Visitor
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)
 
- Protected Attributes inherited from MauAsmOutput
const NextTablenxt_tbl
 
const BFN_Optionsoptions
 
const PhvInfophv
 
const IR::BFN::Pipe * pipe
 
const MauPower::FinalizeMauPredDepsPowerpower_and_mpr
 
- Protected Attributes inherited from P4::Visitor
bool dontForwardChildrenBeforePreorder = false
 
bool joinFlows = false
 
bool visitDagOnce = true