https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108552
--- Comment #17 from Uroš Bizjak <ubizjak at gmail dot com> ---
The assembly is just mirroring what tree optimizers prepare:
pretmp_94 = __gcov0.prep_compound_page[7];
_179 = pretmp_94 + 1;
ivtmp.1725_211 = (unsigned long long) _179;
...
<bb 9> [local count: 955630225]:
# ivtmp.1725_77 = PHI <ivtmp.1725_69(9), ivtmp.1725_211(8)>
# ivtmp.1730_178 = PHI <ivtmp.1730_168(9), ivtmp.1730_157(8)>
p_16 = (struct page *) ivtmp.1730_178;
MEM <struct address_space *> [(union *)p_16 + 12B] = 1024B;
MEM[(volatile long unsigned int *)p_16 + 4B] ={v} _95;
PROF_edge_counter_46 = (long long int) ivtmp.1725_77;
__gcov0.prep_compound_page[7] = PROF_edge_counter_46;
ivtmp.1725_69 = ivtmp.1725_77 + 1;
ivtmp.1730_168 = ivtmp.1730_178 + 40;
if (_19 != ivtmp.1725_69)
goto <bb 9>; [89.00%]
else
goto <bb 7>; [11.00%]
So, loop variable is initialized to __gcov0.prep_compound_page[7] ???