> I wonder how to deal with the situation
> where CHREC_RIGHT changes? Whenever we call chrec_fold_plus
> with CHRECs of the same loop we get { a + b, step_a + step_b }_loop
> which will invalidate nowrap bounds?
>
> Likewise if you start with
> { init, +, 1 }_0 and a bound of N, adding 5 requires to adjust N?
> So even changing CHREC_LEFT is problematic.
Hmm, but the bound would/should then still be N because its derived from the IV
type, even after adding 5? Or maybe I misunderstood?
Right now the conjunction of two nowrap bounds happens through MIN. If we add
one chrec to another, leading to a laxer bound, indeed no bounds update
happens. We would pessimize the bound, perhaps significantly so?, and version
with it. I'll try to come up with a test case for this. During testing of the
patch I haven't been particularly lucky with building test cases that show the
specific behavior I want to test, though...
--
Regards
Robin