56class RemoveMetadataInits :
public AbstractElimUnusedInstructions {
59 std::set<cstring> &zeroInitFields;
63 std::set<cstring> pa_no_inits;
67 bool elim_assign(
const IR::BFN::Unit *unit,
const IR::Expression *left,
68 const IR::Expression *right);
71 void end_apply()
override;
74 bool elim_extract(
const IR::BFN::Unit *unit,
const IR::BFN::Extract *extract)
override;
76 const IR::BFN::Pipe *preorder(IR::BFN::Pipe *pipe)
override;
77 const IR::MAU::Instruction *preorder(IR::MAU::Instruction *instr)
override;
80 std::set<cstring> &zeroInitFields)
81 : AbstractElimUnusedInstructions(defuse),
84 zeroInitFields(zeroInitFields) {}