https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671
--- Comment #8 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 24 Feb 2017, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671 > > --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > Comparing PTRS_COMPARE_UNEQUAL={287,286} fre3 (287 doesn't occur in the list, > so it is never optimize using ptrs_compare_unequal, 286 is only optimize for > _286), > the differences are: > _286 = &MEM[(struct function *)this_9(D) + 100B].D.542596; > - if (&D.616011.D.542596 == _286) > - goto <bb 116>; [46.53%] > - else > - goto <bb 79>; [53.47%] > - > - <bb 79> [50.53%]: > ... > and > - <bb 98> [45.34%]: > - if (&tmp == _286) > - goto <bb 111>; [26.74%] > - else > - goto <bb 99>; [73.26%] > - > - <bb 99> [33.22%]: > plus lots of renumbering of basic blocks; the number of skipped bbs is big > though. Assuming D.616011 and tmp are automatic vars that's obviously correct. _286 is just 'this' offsetted.