https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114589

Andrew Macleod <amacleod at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org

--- Comment #11 from Andrew Macleod <amacleod at redhat dot com> ---
(In reply to Richard Biener from comment #10)
>
> from pointer to unsigned long.  Possibly IVOPTs replacing the pointer
> IV with an integer IV (but nothing else really) is the issue here.
> 
Yes, this would be my guess.  with pointers we make an attempt to track the
symbolic base in VRP, whereas with integers there is not usually a need.  So
when it comes to the loop there is no attempt to track that the lower bound of
the loop/PHI is o_3... 

Instead, we see a non-zero integral range.  PHI analysis can detect that it is
increasing, but it has no way to recognize a starting base range.

Its possible when prange has points to analysis implemented it might be able to
determine something (ie look at what the integer is derived from, looking for a
cast in the past to determine a base) , but moving back and forth to an integer
certainly complicated things.

Reply via email to