51 std::map<UniqueId, PowerMemoryAccess> &table_memory_access_;
58 std::map<UniqueId, PowerMemoryAccess> attached_memory_usage_ = {};
66 std::map<UniqueId, bool> table_uses_mocha_container_ = {};
71 void end_apply(
const IR::Node *root)
override;
72 void postorder(
const IR::BFN::Pipe *p)
override;
73 void postorder(
const IR::MAU::Table *t)
override;
74 bool preorder(
const IR::MAU::Meter *m)
override;
75 bool preorder(
const IR::MAU::Counter *c)
override;
76 bool preorder(
const IR::MAU::Selector *sel)
override;
85 void add_unattached_memory_accesses();
91 void find_stage_dependencies();
98 void update_stage_dependencies_for_min_latency();
104 bool uses_mocha_containers_in_ixbar(
const IR::MAU::Table *t)
const;
115 bool &exceeds_stages_;
121 std::map<UniqueId, PowerMemoryAccess> &table_memory_access)
122 : table_memory_access_(table_memory_access),
124 dep_graph_(dep_graph),
125 graphs_(control_graphs),
127 mau_features_(mau_features),
128 exceeds_stages_(exceeds_stages) {
129 force_match_dependency_ = options_.force_match_dependency;
130 if (Device::currentDevice() != Device::TOFINO) {
138 bool force_match_dependency_ =
false;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24