<div dir="ltr">On Mon, Jul 1, 2013 at 1:43 PM, Preston Briggs <<a href="mailto:preston.briggs@gmail.com">preston.briggs@gmail.com</a>> wrote:<br>> Arnold Schwaighofer <<a href="mailto:aschwaighofer@apple.com">aschwaighofer@apple.com</a>> wrote:<br>
> > I have taken a high-level look at the implementation of the Dependence Analysis pass. <br>> > - Overflow<br>> > It seems the current implementation does not handle overflow correctly.<br>><br>> I can believe it. I think this whole question needs to be carefully discussed and reviewed.<br>
> I certainly don't understand all the constraints.<br>><br>> > We must be very careful with cases where part of the access function might overflow.<br>> ><br>> > ;;  for (long unsigned i = 0; i < N; i++) {<br>
> > ;;    A[3*i+7] = i;<br>> > ;;    *B++ = A[3*i];<br>> ><br>> > There is a dependence between the two access possible due to integer wrapping<br>> > but the current implementation returns there is none. I have not investigated why.<br>
><br><div style="font-family:arial,sans-serif;font-size:13px">> At a glance, I would think there's no possible dependence,</div><div style="font-family:arial,sans-serif;font-size:13px">> since GCD(3, 3) => 3 which doesn't divide 7.</div>
<div style="font-family:arial,sans-serif;font-size:13px">> That's as far as the current analysis will go.</div><div style="font-family:arial,sans-serif;font-size:13px">></div><div style="font-family:arial,sans-serif;font-size:13px">
> But of course your point is correct.</div><div><br></div><div style>On 2nd thought, I disagree; I don't believe there's a dependence.</div><div style>My argument is that "i" can never wrap</div><div style>
(since it's incremented by 1 and compared against "N").</div><div style><br></div><div style>Can't we notice this by paying attention to the nowrap flags</div><div style>associated with the SCEV?  That said, it's not clear to me that</div>
<div style>I do the right thing. Nevertheless, it gives me hope for the future.</div><div style><br></div><div style>Preston</div><div style><br></div></div>