From: Richard Biener Date: Tue, 27 Feb 2018 14:45:46 +0000 (+0000) Subject: re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723) X-Git-Tag: upstream/12.2.0~33160 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c16d3e3c875cb00ff8cffbdf1aa58ab0932e767d;p=platform%2Fupstream%2Fgcc.git re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723) 2018-02-27 Richard Biener PR tree-optimization/84466 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): Adjust last change to less strictly validate use operands. From-SVN: r258035 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a230b12..d4e56b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-02-27 Richard Biener + + PR tree-optimization/84466 + * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): + Adjust last change to less strictly validate use operands. + 2018-02-27 Martin Liska PR gcov-profile/84548 diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index 70cb773..2331dec 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -1028,16 +1028,23 @@ scop_detection::stmt_simple_for_scop_p (sese_l scop, gimple *stmt, case GIMPLE_ASSIGN: case GIMPLE_CALL: { - tree op; + tree op, lhs = gimple_get_lhs (stmt); ssa_op_iter i; + /* If we are not going to instantiate the stmt do not require + its operands to be instantiatable at this point. */ + if (lhs + && TREE_CODE (lhs) == SSA_NAME + && scev_analyzable_p (lhs, scop)) + return true; /* Verify that if we can analyze operands at their def site we also can represent them when analyzed at their uses. */ FOR_EACH_SSA_TREE_OPERAND (op, stmt, i, SSA_OP_USE) if (scev_analyzable_p (op, scop) - && !graphite_can_represent_expr (scop, bb->loop_father, op)) + && chrec_contains_undetermined + (scalar_evolution_in_region (scop, bb->loop_father, op))) { DEBUG_PRINT (dp << "[scop-detection-fail] " - << "Graphite cannot represent stmt:\n"; + << "Graphite cannot code-gen stmt:\n"; print_gimple_stmt (dump_file, stmt, 0, TDF_VOPS | TDF_MEMSYMS)); return false;