This patch eliminates makeGuaranteedNoWrapRegion(), which had a single use case: detecting, in SCEV, the potential for overflow when pairs of ConstantRanges are added. The replacement is mayOverflow(), a new ConstantRange method that is less code, easier to use (because it does the whole job of detecting overflow, not just part of it), and more general (also handles subtract and multiply).
I ran the two implementations of overflow checking (the new one and the one based on makeGuaranteedNoWrapRegion()) in parallel for a while and they always return the same answers while performing interesting tasks such as bootstrapping LLVM.
This patch is a prelude to LVI-based integer overflow check removal.
Why not have this be a member function?