This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/79671] [7 Regression] mapnik miscompilation on armv7hl since r235622


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]