https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
--- Comment #8 from amker at gcc dot gnu.org ---
The additional copy instruction is because IVOPT doesn't rewrite
non-linear/comparison IV_use before the use point, instead, it rewrites it at
the statement the IV_use variable is defined.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
amker at gcc dot gnu.org changed:
What|Removed |Added
CC||amker at gcc dot gnu.org
--- C
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
--- Comment #6 from Andrew Pinski ---
This might be fixed now with GCC 6. There has been many improvements to IVOPTs
during GCC 6 time frame.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
--- Comment #5 from Richard Biener ---
(In reply to Richard Biener from comment #4)
> Sth like
>
> Index: gcc/c-family/c-common.c
> ===
> --- gcc/c-family/c-common.c (revision 20
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
--- Comment #4 from Richard Biener ---
Sth like
Index: gcc/c-family/c-common.c
===
--- gcc/c-family/c-common.c (revision 209018)
+++ gcc/c-family/c-common.c (working copy)
@@
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
--- Comment #3 from Richard Biener ---
I think the main observation is that
use 1
address
in statement _15 = *_14;
at position *_14
type int *
base perm_9(D) + (sizetype) ((long unsigned int) (k_4(D) + -1) * 4)
step 18446744073709551
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
bin.cheng changed:
What|Removed |Added
CC||amker.cheng at gmail dot com
--- Comment #2 f