From: Tom de Vries Date: Wed, 26 Oct 2011 09:33:49 +0000 (+0000) Subject: re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree... X-Git-Tag: releases/gcc-4.7.0~2802 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e1d5f491f78069261227aa55ce43879e427c51a;p=thirdparty%2Fgcc.git re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge) 2011-10-26 Tom de Vries PR tree-optimization/50763 * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2. From-SVN: r180518 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a54e9490afee..1a09dcc78c38 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-10-26 Tom de Vries + + PR tree-optimization/50763 + * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or + phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2. + 2011-10-26 Richard Guenther PR lto/41844 diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c index f7b2f5278d7a..eb4bc92bd621 100644 --- a/gcc/tree-ssa-tail-merge.c +++ b/gcc/tree-ssa-tail-merge.c @@ -1551,7 +1551,12 @@ replace_block_by (basic_block bb1, basic_block bb2, bool update_vops) phi_vuse1 = vop_at_entry (bb1); /* If both are not found, it means there's no need to update. */ - update_vops = phi_vuse1 != NULL_TREE || phi_vuse2 != NULL_TREE; + if (phi_vuse1 == NULL_TREE && phi_vuse2 == NULL_TREE) + update_vops = false; + else if (phi_vuse1 == NULL_TREE) + update_vops = dominated_by_p (CDI_DOMINATORS, bb1, bb2); + else if (phi_vuse2 == NULL_TREE) + update_vops = dominated_by_p (CDI_DOMINATORS, bb2, bb1); } if (phi_vuse1 && gimple_bb (SSA_NAME_DEF_STMT (phi_vuse1)) == bb1)