Also during stage 3/4, we discovered that it is unsafe to call ranger from within SCEV.  This is because ranger uses SCEV to resolve PHIS, and we can end up in a bad loop under the right conditions. The fix is for ranger's cache to NOT try to pre-evaluate PHIs (which is kind of waste anyway since they rarely resolve based on known incoming ranges to anything interesting). Combined with this, it is now safe to make filling the block cache re-entrant (which can also happen if called from SCEV). Turns out not wasting time pre-evaluating PHIs was also a time win.. so this patch also provides some modest speedups. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew