diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-05-10 10:20:38 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-05-10 10:20:38 +0200 |
commit | 425f5fd4c444a75ea0a7fec02d49d3814c724f67 (patch) | |
tree | 616d4fa13f50a963750d185103b7fe1793d0f323 /gcc/tree-parloops.c | |
parent | b5cbaee240380ba1a3a48fad3810409dea32b888 (diff) | |
download | gcc-425f5fd4c444a75ea0a7fec02d49d3814c724f67.zip gcc-425f5fd4c444a75ea0a7fec02d49d3814c724f67.tar.gz gcc-425f5fd4c444a75ea0a7fec02d49d3814c724f67.tar.bz2 |
re PR tree-optimization/90385 (ICE: tree check: expected ssa_name, have real_cst in transform_to_exit_first_loop_alt, at tree-parloops.c:1772)
PR tree-optimization/90385
* tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
arguments of the exit phis.
* gfortran.dg/pr90385.f90: New test.
From-SVN: r271059
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r-- | gcc/tree-parloops.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 968368f..9de154e 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -2794,8 +2794,16 @@ try_create_reduction_list (loop_p loop, gimple *reduc_phi; tree val = PHI_ARG_DEF_FROM_EDGE (phi, exit); - if (TREE_CODE (val) == SSA_NAME && !virtual_operand_p (val)) + if (!virtual_operand_p (val)) { + if (TREE_CODE (val) != SSA_NAME) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, + " FAILED: exit PHI argument invariant.\n"); + return false; + } + if (dump_file && (dump_flags & TDF_DETAILS)) { fprintf (dump_file, "phi is "); |