From: Steven Bosscher Date: Thu, 1 Nov 2007 21:03:50 +0000 (+0000) Subject: re PR rtl-optimization/33828 (Issues with code hoisting implementation in gcse.c) X-Git-Tag: releases/gcc-4.3.0~1709 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f8423fea8da09d34b08b9cec9a72a2d8c9ba42e7;p=thirdparty%2Fgcc.git re PR rtl-optimization/33828 (Issues with code hoisting implementation in gcse.c) PR rtl-optimization/33828 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation of VBEIN and VBEOUT. From-SVN: r129832 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a39ef31701a1..c790c1fa5ea3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-11-01 Steven Bosscher + + PR rtl-optimization/33828 + * gcse.c (compute_code_hoist_vbeinout): Fix order of computation + of VBEIN and VBEOUT. + 2007-11-01 Eric Botcazou * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks. diff --git a/gcc/gcse.c b/gcc/gcse.c index a519acbf0545..b0a592d4d66c 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -4772,10 +4772,14 @@ compute_code_hoist_vbeinout (void) the convergence. */ FOR_EACH_BB_REVERSE (bb) { - changed |= sbitmap_a_or_b_and_c_cg (hoist_vbein[bb->index], antloc[bb->index], - hoist_vbeout[bb->index], transp[bb->index]); if (bb->next_bb != EXIT_BLOCK_PTR) - sbitmap_intersection_of_succs (hoist_vbeout[bb->index], hoist_vbein, bb->index); + sbitmap_intersection_of_succs (hoist_vbeout[bb->index], + hoist_vbein, bb->index); + + changed |= sbitmap_a_or_b_and_c_cg (hoist_vbein[bb->index], + antloc[bb->index], + hoist_vbeout[bb->index], + transp[bb->index]); } passes++;