On 02/17/2017 10:11 AM, Richard Biener wrote:
Index: gcc/fwprop.c =================================================================== --- gcc/fwprop.c (revision 245501) +++ gcc/fwprop.c (working copy) @@ -1478,7 +1478,8 @@ fwprop (void) Do not forward propagate addresses into loops until after unrolling. CSE did so because it was able to fix its own mess, but we are not. */- for (i = 0; i < DF_USES_TABLE_SIZE (); i++) + unsigned sz = DF_USES_TABLE_SIZE (); + for (i = 0; i < sz; i++) { df_ref use = DF_USES_GET (i); if (use) might work? (not knowing too much about this detail of the DF data structures - can the table shrink?)
This would probably work to fix the bug, but this behaviour is explicitly documented as intentional (in the comment the second half of which you've quoted). I assume it enables additional substitutions.
Bernd
