Running the bounds checking sanitizer earlier makes it easier for other optimizations to remove the checks it inserts.
While it could also inhibit other optimizations, I ran a few benchmarks and this did seem to improve performance and code size slightly.
Note that I'm not sure how to hook this up to the new PM, as I couldn't find a similar hook into the beginning of the pipeline. Are there any suggestions on what to do about that, or is it fine for this to work just on the old PM?