34 friend class AddAlwaysRunTest;
49 std::map<gress_t, ordered_map<const UniqueId, unsigned>> globalOrderings;
71 std::map<const UniqueId, std::optional<UniqueId>> subsequentTables;
77 int compare(
const IR::MAU::Table *t1,
const IR::MAU::Table *t2)
const;
78 int compare(
const IR::MAU::Table *t1, std::optional<UniqueId> t2)
const;
86 const IR::MAU::Table *subsequentTable =
nullptr;
89 std::map<const IR::MAU::Table *, const IR::MAU::Table *> minSubsequentTables;
92 bool preorder(
const IR::MAU::TableSeq *)
override;
93 bool preorder(
const IR::MAU::Table *)
override;
94 void end_apply(
const IR::Node *root)
override;
97 explicit PrepareToAdd(
AddAlwaysRun &self) : self(self) {}
109 std::list<const IR::MAU::Table *> tablesToAdd;
112 std::optional<UniqueId> subsequentTable;
114 const IR::BFN::Pipe *preorder(IR::BFN::Pipe *)
override;
115 const IR::Node *preorder(IR::MAU::TableSeq *)
override;
117 AddTables *clone()
const override;
118 AddTables &flow_clone()
override;
119 void flow_merge(
Visitor &v)
override;
122 AddTables(
const AddTables &) =
default;
123 AddTables(AddTables &&) =
default;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24