MachineInstNumbering is a wrapper around SlotIndexes, which exposes an API to allow fast dominance checks in the CSEMIRBuilder, and to speed up intra-block instruction sinking in the Localizer.
The numbering is stored within the CSEInfo analysis. This change also sets the AArch64 and generic GlobalISel passes to preserve the CSEInfo, and therefore use the CSEMIRBuilder within the RegBankSelect and other combiner passes.
Overall this seems to impact compile time negatively by about ~0.5% on -O0 and -Os but prevents us from having unreasonably long compile times in the worst cases.
It would eliminate the explicit dtor and simplify the logic in init() if this were std::unique_ptr<SlotIndexes> SI;