re PR tree-optimization/84427 (gcc ICE at -O3 on x86_64-linux-gnu in compute_antic...
authorRichard Biener <rguenther@suse.de>
Fri, 2 Mar 2018 07:45:41 +0000 (07:45 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 2 Mar 2018 07:45:41 +0000 (07:45 +0000)
commite8b3f7a4dc1d954341475a5f13e4a8d939ddcfb1
tree36a4a124b2366597bcf98578183f83f65fff309d
parent2ebb413bb0f3c0794e7ec109d558860f386212cc
re PR tree-optimization/84427 (gcc ICE at -O3 on x86_64-linux-gnu in compute_antic, at tree-ssa-pre.c:2356)

2018-03-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84427
* tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
(bitmap_set_subtract_values): Rewrite to handle multiple
exprs per value.
(clean): Likewise.
(prune_clobbered_mems): Likewise.
(phi_translate): Take edge instead of pred/phiblock.
(phi_translate_1): Likewise.
(phi_translate_set): Likewise.  Insert all translated
exprs for a value into the set, keeping possibly multiple
expressions per value.
(compute_antic_aux): Adjust for phi_translate changes.
When intersecting union the expressions and prune those
not in the final value set, keeping possibly multiple
expressions per value.  Do not use value-insertion
for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
all expressions.  Add verification that the value-sets
only shrink during iteration.
(compute_partial_antic_aux): Adjust for the phi_translate changes.
(do_pre_regular_insertion): Likewise.
(do_pre_partial_partial_insertion): Likewise.

* gcc.dg/torture/pr84427.c: New testcase.

From-SVN: r258124
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr84427.c [new file with mode: 0644]
gcc/tree-ssa-pre.c