This tries to propagate !range metadata to a pre-existing load when a load is optimized out. This is done instead of adding an assume because converting loads to and from assumes creates a lot of IR.
This requires D37215 in order to work, but I've put it in a separate patch because it affects a different section of the code (and also for easier bisection if this introduces a regression).
reached and executed -> later executed