> 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

Reply via email to