Commit 4b0ab0d9 by Prathamesh Kulkarni Committed by Prathamesh Kulkarni

re PR tree-optimization/92163 (ICE: Segmentation fault (in bitmap_set_bit))

2019-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR tree-optimization/92163
	* tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
	need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
	before calling bitmap_set_bit.
	(dse_optimize_redundant_stores): Pass global need_eh_cleanup to
	delete_dead_or_redundant_assignment.
	(dse_dom_walker::dse_optimize_stmt): Likewise.
	* tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.

testsuite/
	* gcc.dg/tree-ssa/pr92163.c: New test.

From-SVN: r277525
parent fa03d576
2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR tree-optimization/92163
* tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
before calling bitmap_set_bit.
(dse_optimize_redundant_stores): Pass global need_eh_cleanup to
delete_dead_or_redundant_assignment.
(dse_dom_walker::dse_optimize_stmt): Likewise.
* tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR middle-end/91272
* tree-vect-stmts.c (vectorizable_condition): Support
EXTRACT_LAST_REDUCTION with fully-masked loops.
2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR tree-optimization/92163
* gcc.dg/tree-ssa/pr92163.c: New test.
2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR middle-end/91272
* gcc.target/aarch64/sve/clastb_1.c: Add dg-scan.
* gcc.target/aarch64/sve/clastb_2.c: Likewise.
......
/* { dg-do "compile" } */
/* { dg-options "-O2 -fexceptions -fnon-call-exceptions -fopenacc" } */
void
xr (int *k7)
{
int qa;
#pragma acc parallel
#pragma acc loop vector
for (qa = 0; qa < 3; ++qa)
if (qa % 2 != 0)
k7[qa] = 0;
else
k7[qa] = 1;
}
......@@ -77,7 +77,6 @@ along with GCC; see the file COPYING3. If not see
fact, they are the same transformation applied to different views of
the CFG. */
void delete_dead_or_redundant_assignment (gimple_stmt_iterator *, const char *);
static void delete_dead_or_redundant_call (gimple_stmt_iterator *, const char *);
/* Bitmap of blocks that have had EH statements cleaned. We should
......@@ -639,7 +638,8 @@ dse_optimize_redundant_stores (gimple *stmt)
{
gimple_stmt_iterator gsi = gsi_for_stmt (use_stmt);
if (is_gimple_assign (use_stmt))
delete_dead_or_redundant_assignment (&gsi, "redundant");
delete_dead_or_redundant_assignment (&gsi, "redundant",
need_eh_cleanup);
else if (is_gimple_call (use_stmt))
delete_dead_or_redundant_call (&gsi, "redundant");
else
......@@ -900,7 +900,8 @@ delete_dead_or_redundant_call (gimple_stmt_iterator *gsi, const char *type)
/* Delete a dead store at GSI, which is a gimple assignment. */
void
delete_dead_or_redundant_assignment (gimple_stmt_iterator *gsi, const char *type)
delete_dead_or_redundant_assignment (gimple_stmt_iterator *gsi, const char *type,
bitmap need_eh_cleanup)
{
gimple *stmt = gsi_stmt (*gsi);
if (dump_file && (dump_flags & TDF_DETAILS))
......@@ -915,7 +916,7 @@ delete_dead_or_redundant_assignment (gimple_stmt_iterator *gsi, const char *type
/* Remove the dead store. */
basic_block bb = gimple_bb (stmt);
if (gsi_remove (gsi, true))
if (gsi_remove (gsi, true) && need_eh_cleanup)
bitmap_set_bit (need_eh_cleanup, bb->index);
/* And release any SSA_NAMEs set in this statement back to the
......@@ -1059,7 +1060,7 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi)
&& !by_clobber_p)
return;
delete_dead_or_redundant_assignment (gsi, "dead");
delete_dead_or_redundant_assignment (gsi, "dead", need_eh_cleanup);
}
}
......
......@@ -31,6 +31,7 @@ enum dse_store_status
dse_store_status dse_classify_store (ao_ref *, gimple *, bool, sbitmap,
bool * = NULL, tree = NULL);
void delete_dead_or_redundant_assignment (gimple_stmt_iterator *, const char *);
void delete_dead_or_redundant_assignment (gimple_stmt_iterator *, const char *,
bitmap = NULL);
#endif /* GCC_TREE_SSA_DSE_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment