From 730bddf26ca4e5222b4130535b6bc705943f5d8b Mon Sep 17 00:00:00 2001 From: Diego Novillo Date: Wed, 17 Nov 2004 21:07:03 +0000 Subject: [PATCH] re PR tree-optimization/18307 (merge_pointed_to_info called incorrectly) PR tree-optimization/18307 * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and 'orig' are the same node. (collect_points_to_info_r): Do not call merge_pointed_to_info when the PHI argument is identical to the LHS. From-SVN: r90816 --- gcc/ChangeLog | 8 ++++++++ gcc/tree-ssa-alias.c | 12 +++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 932744504a1..6bf212a17f0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-11-17 Diego Novillo + + PR tree-optimization/18307 + * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and + 'orig' are the same node. + (collect_points_to_info_r): Do not call merge_pointed_to_info + when the PHI argument is identical to the LHS. + 2004-11-17 Steven Bosscher * tree-ssa-propagate.c (cfg_blocks_add) Assert we're not trying diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 2da76ce6bb5..aee68d3c58c 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -1697,12 +1697,8 @@ merge_pointed_to_info (struct alias_info *ai, tree dest, tree orig) { struct ptr_info_def *dest_pi, *orig_pi; - /* FIXME: It is erroneous to call this function with identical - nodes, however that currently occurs during bootstrap. This check - stops further breakage. PR 18307 documents the issue. */ - if (dest == orig) - return; - + gcc_assert (dest != orig); + /* Make sure we have points-to information for ORIG. */ collect_points_to_info_for (ai, orig); @@ -1938,7 +1934,9 @@ collect_points_to_info_r (tree var, tree stmt, void *data) break; case SSA_NAME: - merge_pointed_to_info (ai, lhs, var); + /* Avoid unnecessary merges. */ + if (lhs != var) + merge_pointed_to_info (ai, lhs, var); break; default: -- 2.30.2