From: Jakub Jelinek Date: Mon, 22 Jan 2018 23:00:50 +0000 (+0100) Subject: re PR tree-optimization/83957 (ICE: Segmentation fault (in gimple_phi_arg)) X-Git-Tag: upstream/12.2.0~33877 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=164485b5c4f4fb74def017cf7e811c90435cc245;p=platform%2Fupstream%2Fgcc.git re PR tree-optimization/83957 (ICE: Segmentation fault (in gimple_phi_arg)) PR tree-optimization/83957 * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove semicolon after for body surrounded by braces. * gcc.dg/autopar/pr83957.c: New test. From-SVN: r256967 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8c30e7..507bb52 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2018-01-22 Jakub Jelinek + PR tree-optimization/83957 + * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove + semicolon after for body surrounded by braces. + PR tree-optimization/83081 * profile-count.h (profile_probability::split): New method. * dojump.c (do_jump_1) : diff --git a/gcc/omp-expand.c b/gcc/omp-expand.c index 8690f86..90e0631 100644 --- a/gcc/omp-expand.c +++ b/gcc/omp-expand.c @@ -3156,6 +3156,9 @@ expand_omp_for_generic (struct omp_region *region, gphi *nphi; gphi *exit_phi = psi.phi (); + if (virtual_operand_p (gimple_phi_result (exit_phi))) + continue; + edge l2_to_l3 = find_edge (l2_bb, l3_bb); tree exit_res = PHI_ARG_DEF_FROM_EDGE (exit_phi, l2_to_l3); @@ -3178,7 +3181,7 @@ expand_omp_for_generic (struct omp_region *region, add_phi_arg (nphi, exit_res, l2_to_l0, UNKNOWN_LOCATION); add_phi_arg (inner_phi, new_res, l0_to_l1, UNKNOWN_LOCATION); - }; + } } set_immediate_dominator (CDI_DOMINATORS, l2_bb, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 23cef82..82497ed 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2018-01-22 Jakub Jelinek + PR tree-optimization/83957 + * gcc.dg/autopar/pr83957.c: New test. + PR tree-optimization/83081 * gcc.dg/predict-8.c: Adjust expected probability. diff --git a/gcc/testsuite/gcc.dg/autopar/pr83957.c b/gcc/testsuite/gcc.dg/autopar/pr83957.c new file mode 100644 index 0000000..7d13ee1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/autopar/pr83957.c @@ -0,0 +1,11 @@ +/* PR tree-optimization/83957 */ +/* { dg-do compile } */ +/* { dg-options "-O1 -ftree-parallelize-loops=2 -fno-tree-dce --param parloops-schedule=dynamic" } */ + +void +foo (int *x, int y) +{ + if (y < 0) + for (; y < 1; ++y) + x = &y; +}