http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60280
Bug ID: 60280 Summary: gcc.target/arm/ivopts.c and gcc.target/arm/ivopts-2.c failed caused by preserving loop structure. Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amker.cheng at gmail dot com gcc.target/arm/ivopts-2.c is like: /* { dg-do assemble } */ /* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */ extern void foo2 (short*); void tr4 (short array[], int n) { int x; if (n > 0) for (x = 0; x < n; x++) foo2 (&array[x]); } /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */ /* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */ /* { dg-final { object-size text <= 26 { target arm_thumb2 } } } */ /* { dg-final { cleanup-tree-dump "ivopts" } } */ /* { dg-final { cleanup-saved-temps "ivopts" } } */ Build with options: -mthumb -mcpu=cortex-a15 -c The size of text section is 28, causing regression. Same story happens to ivopts.c