[Bug debug/90231] ivopts causes <optimized away> iterator in the loop

amker at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 17 11:51:00 GMT 2019


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

--- Comment #7 from bin cheng <amker at gcc dot gnu.org> ---
The orignal iv needs to be represented in debug bind stmt is:
 64 IV struct:
 65   SSA_NAME:     i_18
 66   Type: int
 67   Base: 0
 68   Step: 1
 69   Biv:  Y
 70   Overflowness wrto loop niter: No-overflow

While the possible candidate is:
185 Candidate 8:
186   Var befor: ivtmp.11
187   Var after: ivtmp.11
188   Incr POS: before exit test
189   IV struct:
190     Type:       unsigned long
191     Base:       (unsigned long) dst_10(D)
192     Step:       4
193     Object:     (void *) dst_10(D)
194     Biv:        N
195     Overflowness wrto loop niter:       Overflow

Strictly speaking, with above information, we can't compute i_18 using ivtmp.11
correctly in all cases, because ivtmp.11 could overflow.  Of course, the
overflow-ness in this case could be improved, thus solve the problem.  Or there
is another method: we can do the computation anyway, it may give wrong value in
some cases, but we are in debug stmt, value which is correct in most cases is
better than optimized away, sensible?

Thanks,
bin


More information about the Gcc-bugs mailing list