diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/autopar/pr90211.c | 24 | ||||
-rw-r--r-- | gcc/tree-parloops.c | 2 |
4 files changed, 36 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2c1cc37..d4af0fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,10 +1,15 @@ +2019-04-24 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/90211 + * tree-parloops.c (try_create_reduction_list): Ignore phi arguments + which are not SSA_NAMEs. + 2018-04-23 Sudakshina Das <sudi.das@arm.com> * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for AArch64. (aarch64_file_end_indicate_exec_stack): Add gnu note section. - 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> PR rtl-optimization/87979 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 66d0b6f..b301146 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-04-24 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/90211 + * gcc.dg/autopar/pr90211.c: New test. + 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> diff --git a/gcc/testsuite/gcc.dg/autopar/pr90211.c b/gcc/testsuite/gcc.dg/autopar/pr90211.c new file mode 100644 index 0000000..ba314eb --- /dev/null +++ b/gcc/testsuite/gcc.dg/autopar/pr90211.c @@ -0,0 +1,24 @@ +/* PR tree-optimization/90211 */ +/* { dg-do compile } */ +/* { dg-require-effective-target pthread } */ +/* { dg-options "-O3 -fassociative-math -ftree-parallelize-loops=2 -fno-signed-zeros -fno-trapping-math -fno-tree-copy-prop" } */ + +double +foo (int x) +{ + double a, b = 0.0; + while (x < 3) + { + int c; + a = 0.0; + c = 0; + while (c < x) + { + a += 1.0; + ++c; + } + b += 1.0; + ++x; + } + return a + b; +} diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 7124c5b..2fddc59 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -2794,7 +2794,7 @@ try_create_reduction_list (loop_p loop, gimple *reduc_phi; tree val = PHI_ARG_DEF_FROM_EDGE (phi, exit); - if (!virtual_operand_p (val)) + if (TREE_CODE (val) == SSA_NAME && !virtual_operand_p (val)) { if (dump_file && (dump_flags & TDF_DETAILS)) { |