diff options
author | Razya Ladelsky <razya@gcc.gnu.org> | 2005-10-12 09:31:34 +0000 |
---|---|---|
committer | Razya Ladelsky <razya@gcc.gnu.org> | 2005-10-12 09:31:34 +0000 |
commit | 3a3dd865127b059efd2c5503a57b5ac4d8232543 (patch) | |
tree | 169f2c279de8f1a95d76be3671402ac5ce92f302 | |
parent | e2953e417a68f09fbe9aebc96e3a31aff6ef35dc (diff) | |
download | gcc-3a3dd865127b059efd2c5503a57b5ac4d8232543.zip gcc-3a3dd865127b059efd2c5503a57b5ac4d8232543.tar.gz gcc-3a3dd865127b059efd2c5503a57b5ac4d8232543.tar.bz2 |
ipa-1.c: New test.
* gcc.dg/ipa/ipa-1.c: New test.
* gcc.dg/ipa/ipa-2.c: New test.
* gcc.dg/ipa/ipa-3.c: New test.
* gcc.dg/ipa/ipa-4.c: New test.
* gcc.dg/ipa/ipa-5.c: New test.
* gcc.dg/ipa/ipa.exp: New file.
From-SVN: r105291
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-1.c | 28 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-2.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-3.c | 28 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-4.c | 27 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-5.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa.exp | 35 |
6 files changed, 168 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-1.c b/gcc/testsuite/gcc.dg/ipa/ipa-1.c new file mode 100644 index 0000000..d8f737a --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-1.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fipa-cp -fdump-ipa-cp" } */ + +#include <stdio.h> +int g (int b, int c) +{ + printf ("%d %d\n", b, c); +} +int f (int a) +{ + /* Second parameter of g gets different values. */ + if (a > 0) + g (a, 3); + else + g (a, 5); +} +int main () +{ + f (7); + return 0; +} + + +/* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp" } } */ +/* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp" } } */ +/* { dg-final { cleanup-ipa-dump "cp" } } */ + + diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-2.c b/gcc/testsuite/gcc.dg/ipa/ipa-2.c new file mode 100644 index 0000000..e614b59 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-2.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fipa-cp -fdump-ipa-cp" } */ + +#include <stdio.h> +int g (int b, int c) +{ + printf ("%d %d\n", b, c); +} +int f (int a) +{ + /* a is modified. */ + if (a++ > 0) + g (a, 3); +} +int main () +{ + f (7); + return 0; +} + + +/* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp" } } */ +/* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp" } } */ +/* { dg-final { cleanup-ipa-dump "cp" } } */ diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-3.c b/gcc/testsuite/gcc.dg/ipa/ipa-3.c new file mode 100644 index 0000000..b4bf394 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-3.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fipa-cp -fdump-ipa-cp" } */ + + +/* Double constants. */ + +#include <stdio.h> +int g (double b, double c) +{ + return (int)(b+c); +} +int f (double a) +{ + if (a > 0) + g (a, 3.1); + else + g (a, 3.1); +} +int main () +{ + f (7.44); + return 0; +} + + +/* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp" } } */ +/* { dg-final { scan-ipa-dump-times "propagating const" 3 "cp" } } */ +/* { dg-final { cleanup-ipa-dump "cp" } } */ diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-4.c b/gcc/testsuite/gcc.dg/ipa/ipa-4.c new file mode 100644 index 0000000..edb15a8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-4.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fipa-cp -fdump-ipa-cp" } */ + +#include <stdio.h> +int g (int b, int c) +{ + printf ("%d %d\n", b, c); +} +int f (int a) +{ + /* First and second parameter of g gets different values. */ + + if (a > 0) + g (a, 3); + else + g (a+1, 5); +} +int main () +{ + f (7); + return 0; +} + + +/* { dg-final { scan-ipa-dump-times "versioned function" 1 "cp" } } */ +/* { dg-final { scan-ipa-dump-times "propagating const" 1 "cp" } } */ +/* { dg-final { cleanup-ipa-dump "cp" } } */ diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-5.c b/gcc/testsuite/gcc.dg/ipa/ipa-5.c new file mode 100644 index 0000000..efb08da --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-5.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fipa-cp -fdump-ipa-cp" } */ + +/* Float & short constants. */ + +#include <stdio.h> +int g (float b, short c) +{ + return c + (int)b; +} +int f (float a) +{ + /* a is modified. */ + if (a++ > 0) + g (a, 3); +} +int main () +{ + f (7.6); + return 0; +} + + +/* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp" } } */ +/* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp" } } */ +/* { dg-final { cleanup-ipa-dump "cp" } } */ diff --git a/gcc/testsuite/gcc.dg/ipa/ipa.exp b/gcc/testsuite/gcc.dg/ipa/ipa.exp new file mode 100644 index 0000000..d95b938 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa.exp @@ -0,0 +1,35 @@ +# Copyright (C) 1997, 2004 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# GCC testsuite that uses the `dg.exp' driver. + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS + +# All done. +dg-finish |