44 profile_t init_apply(
const IR::Node *root)
override;
52 bool compare_match_operations(
const IR::BFN::LoweredParserMatch *a,
53 const IR::BFN::LoweredParserMatch *b);
55 const IR::BFN::LoweredParserMatch *get_unconditional_match(
56 const IR::BFN::LoweredParserState *state);
58 std::set<PHV::Container> get_extract_constant_dests(
const IR::BFN::LoweredParserMatch *match);
59 std::set<PHV::Container> get_extract_inbuf_dests(
const IR::BFN::LoweredParserMatch *match);
61 std::map<unsigned, unsigned> extractors_used(
const IR::BFN::LoweredParserMatch *match);
63 bool can_hoist(
const IR::BFN::LoweredParserMatch *a,
const IR::BFN::LoweredParserMatch *b);
65 void do_hoist(IR::BFN::LoweredParserMatch *match,
const IR::BFN::LoweredParserMatch *next);
68 bool is_loopback_state(
cstring state);
70 IR::Node *preorder(IR::BFN::LoweredParserMatch *match)
override;
75 : parser_info(parser_info), computed(computed), clot_info(clot_info) {}