Hello, Attached is a new version of the patch.
Thanks to Dominique Dhumieres for testing on powerpc-apple-darwin9. Tested ppc64-redhat-linux on with both -m32,-m64 and SPU. OK for mainline? Thanks, Revital testsuite/Changelog PR rtl-optimization/47013 * gcc.dg/sms-2.c: Change scan-tree-dump-times and the code itself to preserve the function. * gcc.dg/sms-6.c: Add --param sms-min-sc=1. Add dg-options for powerpc*-*-*. Avoid superfluous spaces in dg-final. * gcc.dg/sms-3.c: Add --param sms-min-sc=1 and -fmodulo-sched-allow-regmoves flags. * gcc.dg/sms-7.c: Likewise. Remove dg-final for powerpc*-*-* and avoid superfluous spaces in dg-final for spu-*-*. * gcc.dg/sms-4.c: Add dg-options for powerpc*-*-*. * gcc.dg/sms-8.c: Add --param sms-min-sc=1. Add dg-options and change scan-rtl-dump-times for powerpc*-*-*. * gcc.dg/sms-5.c: Add --param sms-min-sc=1 flag, remove powerpc*-*-* from dg-final and avoid superfluous spaces in dg-final. * gcc.dg/sms-9.c: Remove -fno-auto-inc-dec.
Index: testsuite/gcc.dg/sms-2.c =================================================================== --- testsuite/gcc.dg/sms-2.c (revision 181698) +++ testsuite/gcc.dg/sms-2.c (working copy) @@ -4,12 +4,11 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms" } */ - +int th, h, em, nlwm, nlwS, nlw, sy; void fun (nb) int nb; { - int th, h, em, nlwm, nlwS, nlw, sy; while (nb--) while (h--) @@ -33,5 +32,5 @@ fun (nb) } } -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* powerpc*-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS loop many exits" 1 "sms" { target spu-*-* powerpc*-*-* } } } */ /* { dg-final { cleanup-rtl-dump "sms" } } */ Index: testsuite/gcc.dg/sms-6.c =================================================================== --- testsuite/gcc.dg/sms-6.c (revision 181698) +++ testsuite/gcc.dg/sms-6.c (working copy) @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms" } */ +/* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms --param sms-min-sc=1" } */ +/* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms --param sms-min-sc=1 -fmodulo-sched-allow-regmoves" { target powerpc*-*-* } } */ extern void abort (void); @@ -43,7 +44,7 @@ int main() return 0; } -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 3 "sms" { target powerpc*-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS succeeded" 3 "sms" { target powerpc*-*-* } } } */ /* { dg-final { cleanup-rtl-dump "sms" } } */ Index: testsuite/gcc.dg/sms-3.c =================================================================== --- testsuite/gcc.dg/sms-3.c (revision 181698) +++ testsuite/gcc.dg/sms-3.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -fmodulo-sched -funroll-loops -fdump-rtl-sms" } */ +/* { dg-options "-O2 -fmodulo-sched -funroll-loops -fdump-rtl-sms --param sms-min-sc=1 -fmodulo-sched-allow-regmoves" } */ extern void abort (void); Index: testsuite/gcc.dg/sms-7.c =================================================================== --- testsuite/gcc.dg/sms-7.c (revision 181698) +++ testsuite/gcc.dg/sms-7.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -fmodulo-sched -fstrict-aliasing -fdump-rtl-sms" } */ +/* { dg-options "-O3 -fmodulo-sched -fstrict-aliasing -fdump-rtl-sms -fmodulo-sched-allow-regmoves --param sms-min-sc=1" } */ extern void abort (void); @@ -44,7 +44,6 @@ int main() return 0; } -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 3 "sms" { target powerpc*-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ /* { dg-final { cleanup-rtl-dump "sms" } } */ Index: testsuite/gcc.dg/sms-4.c =================================================================== --- testsuite/gcc.dg/sms-4.c (revision 181698) +++ testsuite/gcc.dg/sms-4.c (working copy) @@ -1,6 +1,7 @@ /* Inspired from sbitmap_a_or_b_and_c_cg function in sbitmap.c. */ /* { dg-do run } */ /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms" } */ +/* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms --param sms-min-sc=1" { target powerpc*-*-* } } */ extern void abort (void); Index: testsuite/gcc.dg/sms-8.c =================================================================== --- testsuite/gcc.dg/sms-8.c (revision 181698) +++ testsuite/gcc.dg/sms-8.c (working copy) @@ -3,7 +3,8 @@ that was not fixed by reg-moves. */ /* { dg-do run } */ - /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms" } */ + /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms --param sms-min-sc=1" } */ + /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms" { target powerpc*-*-* } } */ extern void abort (void); @@ -35,7 +36,7 @@ main () return 0; } -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target powerpc*-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS succeeded" 0 "sms" { target powerpc*-*-* } } } */ /* { dg-final { cleanup-rtl-dump "sms" } } */ Index: testsuite/gcc.dg/sms-5.c =================================================================== --- testsuite/gcc.dg/sms-5.c (revision 181698) +++ testsuite/gcc.dg/sms-5.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -funroll-loops -fdump-rtl-sms" } */ +/* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -funroll-loops -fdump-rtl-sms --param sms-min-sc=1" } */ /* This is the same test as loop-2e.c test. It is related to a fix in the generation of the prolog and epilog. */ @@ -46,7 +46,7 @@ int main () return 0; } -/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target powerpc*-*-* spu-*-* } } } */ +/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ /* { dg-final { cleanup-rtl-dump "sms" } } */ Index: testsuite/gcc.dg/sms-9.c =================================================================== --- testsuite/gcc.dg/sms-9.c (revision 181698) +++ testsuite/gcc.dg/sms-9.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -fmodulo-sched -fno-auto-inc-dec -O2 -fmodulo-sched-allow-regmoves" } */ +/* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves" } */ #include <stdlib.h> #include <stdarg.h>