This patch include 2 cleanup that were requested in PR61320: * Use dg-additional-options to specify the extra option s390 target needs * Use the correct vocabulary of target endianness instead of host endianness in comments, pass dump and the past ChangeLog entry.
Here are the ChangeLog: *** gcc/ChangeLog *** 2014-06-04 Thomas Preud'homme <thomas.preudho...@arm.com> * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target endianness instead of host endianness. * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and comments. *** gcc/testsuite/ChangeLog *** 2014-06-04 Thomas Preud'homme <thomas.preudho...@arm.com> 2014-06-04 Thomas Preud'homme <thomas.preudho...@arm.com> * gcc.dg/optimize-bswaphi-1.c: Adapt test to change of dump output. Specify -march=z900 as an additional option. * gcc.dg/optimize-bswapsi-1.c: Likewise for s390 options. * gcc.dg/optimize-bswapsi-2.c: Likewise. * gcc.dg/optimize-bswapdi-3.c: Likewise for adaptation to dump change. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de07e5c..09122aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1623,7 +1623,8 @@ (find_bswap_or_nop_1): This. Also add support for memory source. (find_bswap): Renamed to ... (find_bswap_or_nop): This. Also add support for memory source and - detection of bitwise operations equivalent to load in host endianness. + detection of bitwise operations equivalent to load in target + endianness. (execute_optimize_bswap): Likewise. Also move its leading comment back in place and split statement transformation into ... (bswap_replace): This. diff --git a/gcc/testsuite/gcc.dg/optimize-bswapdi-3.c b/gcc/testsuite/gcc.dg/optimize-bswapdi-3.c index 0a8bf2e..d96d7e5 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapdi-3.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapdi-3.c @@ -59,6 +59,6 @@ uint64_t read_be64_3 (unsigned char *data) | ((uint64_t) *(data + 1) << 48) | ((uint64_t) *data << 56); } -/* { dg-final { scan-tree-dump-times "64 bit load in host endianness found at" 3 "bswap" } } */ +/* { dg-final { scan-tree-dump-times "64 bit load in target endianness found at" 3 "bswap" } } */ /* { dg-final { scan-tree-dump-times "64 bit bswap implementation found at" 3 "bswap" { xfail alpha*-*-* arm*-*-* } } } */ /* { dg-final { cleanup-tree-dump "bswap" } } */ diff --git a/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c b/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c index 65bff98..3e51f04 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c +++ b/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c @@ -2,7 +2,7 @@ /* { dg-require-effective-target bswap16 } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-tree-bswap" } */ -/* { dg-options "-O2 -fdump-tree-bswap -march=z900" { target s390-*-* } } */ +/* { dg-additional-options "-march=z900" { target s390-*-* } } */ #include <stdint.h> @@ -42,6 +42,6 @@ uint32_t read_be16_3 (unsigned char *data) return *(data + 1) | (*data << 8); } -/* { dg-final { scan-tree-dump-times "16 bit load in host endianness found at" 3 "bswap" } } */ +/* { dg-final { scan-tree-dump-times "16 bit load in target endianness found at" 3 "bswap" } } */ /* { dg-final { scan-tree-dump-times "16 bit bswap implementation found at" 3 "bswap" { xfail alpha*-*-* arm*-*-* } } } */ /* { dg-final { cleanup-tree-dump "bswap" } } */ diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-1.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-1.c index 33d0bb0..ebfca60 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-1.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-1.c @@ -2,7 +2,7 @@ /* { dg-require-effective-target bswap32 } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-tree-bswap" } */ -/* { dg-options "-O2 -fdump-tree-bswap -march=z900" { target s390-*-* } } */ +/* { dg-additional-options "-march=z900" { target s390-*-* } } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-2.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-2.c index 518b510..de6e697 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-2.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-2.c @@ -2,7 +2,7 @@ /* { dg-require-effective-target bswap32 } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-tree-bswap" } */ -/* { dg-options "-O2 -fdump-tree-bswap -march=z900" { target s390-*-* } } */ +/* { dg-additional-options "-march=z900" { target s390-*-* } } */ #include <stdint.h> @@ -44,6 +44,6 @@ uint32_t read_be32_3 (unsigned char *data) | (*data << 24); } -/* { dg-final { scan-tree-dump-times "32 bit load in host endianness found at" 3 "bswap" } } */ +/* { dg-final { scan-tree-dump-times "32 bit load in target endianness found at" 3 "bswap" } } */ /* { dg-final { scan-tree-dump-times "32 bit bswap implementation found at" 3 "bswap" { xfail alpha*-*-* arm*-*-* } } } */ /* { dg-final { cleanup-tree-dump "bswap" } } */ diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index 658b341..a928ad9 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -1971,7 +1971,7 @@ find_bswap_or_nop_1 (gimple stmt, struct symbolic_number *n, int limit) n->range = n2.range + off_sub; /* Reinterpret byte marks in symbolic number holding the value of - bigger weight according to host endianness. */ + bigger weight according to target endianness. */ inc = BYTES_BIG_ENDIAN ? off_sub + n2.range - n1.range : off_sub; mask = 0xFF; if (BYTES_BIG_ENDIAN) @@ -2074,7 +2074,7 @@ find_bswap_or_nop (gimple stmt, struct symbolic_number *n, bool *bswap) /* A complete byte swap should make the symbolic number to start with the largest digit in the highest order byte. Unchanged symbolic - number indicates a read with same endianness as host architecture. */ + number indicates a read with same endianness as target architecture. */ if (n->n == cmpnop) *bswap = false; else if (n->n == cmpxchg) @@ -2204,7 +2204,7 @@ bswap_replace (gimple stmt, gimple_stmt_iterator *gsi, tree src, tree fndecl, if (dump_file) { fprintf (dump_file, - "%d bit load in host endianness found at: ", + "%d bit load in target endianness found at: ", (int)n->range); print_gimple_stmt (dump_file, stmt, 0, 0); } @@ -2271,7 +2271,7 @@ bswap_replace (gimple stmt, gimple_stmt_iterator *gsi, tree src, tree fndecl, /* Find manual byte swap implementations as well as load in a given endianness. Byte swaps are turned into a bswap builtin invokation while endian loads are converted to bswap builtin invokation or - simple load according to the host endianness. */ + simple load according to the target endianness. */ unsigned int pass_optimize_bswap::execute (function *fun)