From: Andrew Pinski Date: Fri, 24 Sep 2004 17:38:36 +0000 (+0000) Subject: re PR tree-optimization/16954 (ICE in get_tmt_for with IMA and incomplete structs) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=532c67ca934a0926455c5a1f745233a4ee3dc2fb;p=gcc.git re PR tree-optimization/16954 (ICE in get_tmt_for with IMA and incomplete structs) 2004-09-24 Andrew Pinski PR tree-opt/16954 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Prevent renaming if the aliasing sets of the type which the pointer points to are different. From-SVN: r88064 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e522714f97b..6e237dc163d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-09-24 Andrew Pinski + + PR tree-opt/16954 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Prevent renaming if the aliasing sets of the type which the + pointer points to are different. + 2004-09-24 Joseph S. Myers PR c/17188 diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c index 49225d09b20..4ef5b3dbd1c 100644 --- a/gcc/tree-ssa-copyrename.c +++ b/gcc/tree-ssa-copyrename.c @@ -261,6 +261,18 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug) return; } + /* Don't coalesce if the aliasing sets of the types are different. */ + if (POINTER_TYPE_P (TREE_TYPE (root1)) + && POINTER_TYPE_P (TREE_TYPE (root2)) + && get_alias_set (TREE_TYPE (TREE_TYPE (root1))) + != get_alias_set (TREE_TYPE (TREE_TYPE (root2)))) + { + if (debug) + fprintf (debug, " : 2 different alasing sets. No coalesce.\n"); + return; + } + + /* Merge the two partitions. */ p3 = partition_union (map->var_partition, p1, p2);