diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2013-08-14 18:32:57 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2013-08-14 19:32:57 +0100 |
commit | d36591c2814ab4845f9b7b0cfcbc6090e1a644a3 (patch) | |
tree | 83a2e90821d3ada6c1b4f517a51d18ceac53bfca | |
parent | 5b5563d12d8b256ce842ec8dbada09acd108f5e4 (diff) | |
download | gcc-d36591c2814ab4845f9b7b0cfcbc6090e1a644a3.zip gcc-d36591c2814ab4845f9b7b0cfcbc6090e1a644a3.tar.gz gcc-d36591c2814ab4845f9b7b0cfcbc6090e1a644a3.tar.bz2 |
strlenopt-10.c [avr-*-*]: Reduce number of expected memcpy by one.
* gcc.dg/strlenopt-10.c [avr-*-*]: Reduce number of expected
memcpy by one.
* gcc.dg/strlenopt-11.c [avr-*-*]: Likewise.
Expect l to be optimized away.
* gcc.dg/strlenopt-13.c [avr-*-*]: Likewise.
From-SVN: r201741
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/strlenopt-10.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/strlenopt-11.c | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/strlenopt-13.c | 16 |
4 files changed, 31 insertions, 10 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 736f994..171b65a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -54,6 +54,12 @@ * gcc.dg/pr46647.c: xfail for avr-*-*. + * gcc.dg/strlenopt-10.c [avr-*-*]: Reduce number of expected + memcpy by one. + * gcc.dg/strlenopt-11.c [avr-*-*]: Likewise. + Expect l to be optimized away. + * gcc.dg/strlenopt-13.c [avr-*-*]: Likewise. + 2013-08-14 Janis Johnson <janisjo@codesourcery.com> * gcc.target/arm/pr19599.c: Skip for -mthumb. diff --git a/gcc/testsuite/gcc.dg/strlenopt-10.c b/gcc/testsuite/gcc.dg/strlenopt-10.c index a18c06a..b044496 100644 --- a/gcc/testsuite/gcc.dg/strlenopt-10.c +++ b/gcc/testsuite/gcc.dg/strlenopt-10.c @@ -70,7 +70,10 @@ main () } /* { dg-final { scan-tree-dump-times "strlen \\(" 2 "strlen" } } */ -/* { dg-final { scan-tree-dump-times "memcpy \\(" 8 "strlen" } } */ +/* avr has BIGGEST_ALIGNMENT 8, allowing fold_builtin_memory_op + to expand the memcpy call at the end of fn2. */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 8 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 7 "strlen" { target { avr-*-* } } } } */ /* { dg-final { scan-tree-dump-times "strcpy \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strcat \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strchr \\(" 0 "strlen" } } */ diff --git a/gcc/testsuite/gcc.dg/strlenopt-11.c b/gcc/testsuite/gcc.dg/strlenopt-11.c index 888eeb2..0fb327c 100644 --- a/gcc/testsuite/gcc.dg/strlenopt-11.c +++ b/gcc/testsuite/gcc.dg/strlenopt-11.c @@ -59,12 +59,18 @@ main () } /* { dg-final { scan-tree-dump-times "strlen \\(" 3 "strlen" } } */ -/* { dg-final { scan-tree-dump-times "memcpy \\(" 7 "strlen" } } */ +/* avr has BIGGEST_ALIGNMENT 8, allowing fold_builtin_memory_op + to expand the memcpy call at the end of fn1. */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 7 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 6 "strlen" { target { avr-*-* } } } } */ /* { dg-final { scan-tree-dump-times "strcpy \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strcat \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strchr \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "stpcpy \\(" 0 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.0. = " 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.6. = " 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.9. = " 1 "strlen" } } */ +/* Where the memcpy is expanded, the assignemts to elements of l are + propagated. */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.0. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.6. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.9. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;" 3 "strlen" { target { avr-*-* } } } } */ /* { dg-final { cleanup-tree-dump "strlen" } } */ diff --git a/gcc/testsuite/gcc.dg/strlenopt-13.c b/gcc/testsuite/gcc.dg/strlenopt-13.c index 9413cb5..f9ab561 100644 --- a/gcc/testsuite/gcc.dg/strlenopt-13.c +++ b/gcc/testsuite/gcc.dg/strlenopt-13.c @@ -56,13 +56,19 @@ main () } /* { dg-final { scan-tree-dump-times "strlen \\(" 4 "strlen" } } */ -/* { dg-final { scan-tree-dump-times "memcpy \\(" 7 "strlen" } } */ +/* avr has BIGGEST_ALIGNMENT 8, allowing fold_builtin_memory_op + to expand the memcpy call at the end of fn1. */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 7 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 6 "strlen" { target { avr-*-* } } } } */ /* { dg-final { scan-tree-dump-times "strcpy \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strcat \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strchr \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "stpcpy \\(" 0 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.0. = " 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.1. = " 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.5. = " 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.6. = " 1 "strlen" } } */ +/* Where the memcpy is expanded, the assignemts to elements of l are + propagated. */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.0. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.1. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.5. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;\[\n\r\]* l.6. = " 1 "strlen" { target { ! avr-*-* } } } } */ +/* { dg-final { scan-tree-dump-times " _\[0-9\]* = strlen \\(\[^\n\r\]*;" 4 "strlen" { target { avr-*-* } } } } */ /* { dg-final { cleanup-tree-dump "strlen" } } */ |