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

--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 47068
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47068&action=edit
gcc10-pr90231.patch

Untested implementation of what I wrote above.
The difference on the testcase at -O2 -g is:
   <bb 3> [local count: 955630224]:
   # base_17 = PHI <base_7(D)(5), base_13(6)>
   # ivtmp.11_20 = PHI <ivtmp.11_5(5), ivtmp.11_6(6)>
-  # DEBUG i => NULL
+  # DEBUG i => (int) ((ivtmp.11_20 - (unsigned long) dst_10(D)) /[ex] 4)
   # DEBUG base => base_17
   # DEBUG BEGIN_STMT
   _4 = (void *) ivtmp.11_20;
   MEM[base: _4, offset: 0B] = base_17;
   # DEBUG BEGIN_STMT
-  # DEBUG D#1 => NULL
+  # DEBUG D#1 => (int) ((ivtmp.11_20 - (unsigned long) dst_10(D)) /[ex] 4) + 1
   # DEBUG i => D#1
   base_13 = base_17 + 15;
   # DEBUG i => D#1
and in the debugger I can actually see correct i values.

Reply via email to