diff options
author | Jeff Law <law@redhat.com> | 2019-06-26 12:00:00 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2019-06-26 12:00:00 -0600 |
commit | 4a61cf9c62212fd04f21704efc2decffe9544651 (patch) | |
tree | 8a77e9e1bb86fbebcf8adcaa6f027ce901a2a13b | |
parent | f363fc5b49cb83aa98d89efa98fe42f57af4de05 (diff) | |
download | gcc-4a61cf9c62212fd04f21704efc2decffe9544651.zip gcc-4a61cf9c62212fd04f21704efc2decffe9544651.tar.gz gcc-4a61cf9c62212fd04f21704efc2decffe9544651.tar.bz2 |
tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of memcpy, memmove and memset builtins.
* tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
memcpy, memmove and memset builtins.
(maybe_trim_memstar_call): Likewise.
* gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tree-dse
as DSE compromises several of these tests.
* gcc.dg/builtin-stringop-chk-1.c: Similarly.
* gcc.dg/memcpy-2.c: Similarly.
* gcc.dg/pr40340-1.c: Similarly.
* gcc.dg/pr40340-2.c: Similarly.
* gcc.dg/pr40340-5.c: Similarly.
From-SVN: r272704
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/memcpy-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr40340-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr40340-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr40340-5.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa-dse.c | 9 |
9 files changed, 31 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c039e62..af5afa6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-06-26 Jeff Law <law@redhat.com> + + * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of + memcpy, memmove and memset builtins. + (maybe_trim_memstar_call): Likewise. + 2019-06-26 David Edelsohn <dje.gcc@gmail.com> * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e53ebc1..eb9f6cc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2019-06-26 Jeff Law <law@redhat.com> + + * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tree-dse + as DSE compromises several of these tests. + * gcc.dg/builtin-stringop-chk-1.c: Similarly. + * gcc.dg/memcpy-2.c: Similarly. + * gcc.dg/pr40340-1.c: Similarly. + * gcc.dg/pr40340-2.c: Similarly. + * gcc.dg/pr40340-5.c: Similarly. + 2019-06-26 Steven G. Kargl <kargl@gcc.gnu.org> PR Fortran/90988 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp index 5e899d5..fb9d3ec 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp @@ -37,7 +37,7 @@ load_lib c-torture.exp torture-init set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS -set additional_flags "-fno-tree-loop-distribute-patterns -fno-tracer" +set additional_flags "-fno-tree-dse -fno-tree-loop-distribute-patterns -fno-tracer" if [istarget "powerpc-*-darwin*"] { lappend additional_flags "-Wl,-multiply_defined,suppress" } diff --git a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c index afd07dd..40cfa04 100644 --- a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c +++ b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c @@ -1,7 +1,7 @@ /* Test whether buffer overflow warnings for __*_chk builtins are emitted properly. */ /* { dg-do compile } */ -/* { dg-options "-O2 -Wno-format -std=gnu99 -ftrack-macro-expansion=0" } */ +/* { dg-options "-O2 -Wno-format -std=gnu99 -ftrack-macro-expansion=0 -fno-tree-dse" } */ // { dg-skip-if "packed attribute missing for t" { "epiphany-*-*" } } extern void abort (void); diff --git a/gcc/testsuite/gcc.dg/memcpy-2.c b/gcc/testsuite/gcc.dg/memcpy-2.c index 7f839d2..6ad8874 100644 --- a/gcc/testsuite/gcc.dg/memcpy-2.c +++ b/gcc/testsuite/gcc.dg/memcpy-2.c @@ -1,6 +1,6 @@ /* PR middle-end/38454 */ /* { dg-do compile } */ -/* { dg-options "-O2" } */ +/* { dg-options "-O2 -fno-tree-dse" } */ typedef __SIZE_TYPE__ size_t; diff --git a/gcc/testsuite/gcc.dg/pr40340-1.c b/gcc/testsuite/gcc.dg/pr40340-1.c index 8fbb206..6307e06 100644 --- a/gcc/testsuite/gcc.dg/pr40340-1.c +++ b/gcc/testsuite/gcc.dg/pr40340-1.c @@ -1,6 +1,6 @@ /* PR middle-end/40340 */ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -Wno-system-headers" } */ +/* { dg-options "-O2 -Wall -Wno-system-headers -fno-tree-dse" } */ #include "pr40340.h" diff --git a/gcc/testsuite/gcc.dg/pr40340-2.c b/gcc/testsuite/gcc.dg/pr40340-2.c index 10083ac..ea76e10 100644 --- a/gcc/testsuite/gcc.dg/pr40340-2.c +++ b/gcc/testsuite/gcc.dg/pr40340-2.c @@ -1,6 +1,6 @@ /* PR middle-end/40340 */ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -Wno-system-headers" } */ +/* { dg-options "-O2 -Wall -Wno-system-headers -fno-tree-dse" } */ #include "pr40340.h" diff --git a/gcc/testsuite/gcc.dg/pr40340-5.c b/gcc/testsuite/gcc.dg/pr40340-5.c index 0e48a2c..99e58f2 100644 --- a/gcc/testsuite/gcc.dg/pr40340-5.c +++ b/gcc/testsuite/gcc.dg/pr40340-5.c @@ -1,6 +1,6 @@ /* PR middle-end/40340 */ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -Wsystem-headers -g" } */ +/* { dg-options "-O2 -Wall -Wsystem-headers -g -fno-tree-dse" } */ #define TEST3 #include "pr40340.h" diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c index aa998f4..ea71f49 100644 --- a/gcc/tree-ssa-dse.c +++ b/gcc/tree-ssa-dse.c @@ -98,6 +98,9 @@ initialize_ao_ref_for_dse (gimple *stmt, ao_ref *write) case BUILT_IN_MEMCPY: case BUILT_IN_MEMMOVE: case BUILT_IN_MEMSET: + case BUILT_IN_MEMCPY_CHK: + case BUILT_IN_MEMMOVE_CHK: + case BUILT_IN_MEMSET_CHK: { tree size = NULL_TREE; if (gimple_call_num_args (stmt) == 3) @@ -434,6 +437,8 @@ maybe_trim_memstar_call (ao_ref *ref, sbitmap live, gimple *stmt) { case BUILT_IN_MEMCPY: case BUILT_IN_MEMMOVE: + case BUILT_IN_MEMCPY_CHK: + case BUILT_IN_MEMMOVE_CHK: { int head_trim, tail_trim; compute_trims (ref, live, &head_trim, &tail_trim, stmt); @@ -455,6 +460,7 @@ maybe_trim_memstar_call (ao_ref *ref, sbitmap live, gimple *stmt) } case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: { int head_trim, tail_trim; compute_trims (ref, live, &head_trim, &tail_trim, stmt); @@ -860,6 +866,9 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi) case BUILT_IN_MEMCPY: case BUILT_IN_MEMMOVE: case BUILT_IN_MEMSET: + case BUILT_IN_MEMCPY_CHK: + case BUILT_IN_MEMMOVE_CHK: + case BUILT_IN_MEMSET_CHK: { /* Occasionally calls with an explicit length of zero show up in the IL. It's pointless to do analysis |