After D99249 we use three different loop pass managers for LICM, LoopRotate and LICM+LoopUnswitch. This happens because LazyBFI and LazyBPI are not preserved by LoopRotate (note that D74640 is no longer needed). Avoid this by marking them as preserved.
My understanding of D86156 is that it is okay to simply preserve them (which LoopUnswitch already does for the same reason) and rely on callbacks to deal with deleted blocks.
Compile-time (only affects LegacyPM): https://llvm-compile-time-tracker.com/compare.php?from=665065821e6ae11deb9796a27b97a399e4bb3b0d&to=3163a33f4d6fec546df2723b9c55da41342716a5&stat=instructions