aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-03-02 07:45:41 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-03-02 07:45:41 +0000
commite8b3f7a4dc1d954341475a5f13e4a8d939ddcfb1 (patch)
tree36a4a124b2366597bcf98578183f83f65fff309d /gcc/combine.c
parent2ebb413bb0f3c0794e7ec109d558860f386212cc (diff)
downloadgcc-e8b3f7a4dc1d954341475a5f13e4a8d939ddcfb1.zip
gcc-e8b3f7a4dc1d954341475a5f13e4a8d939ddcfb1.tar.gz
gcc-e8b3f7a4dc1d954341475a5f13e4a8d939ddcfb1.tar.bz2
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
Diffstat (limited to 'gcc/combine.c')
0 files changed, 0 insertions, 0 deletions