PR tree-optimization/16864
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Aug 2004 08:41:57 +0000 (08:41 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Aug 2004 08:41:57 +0000 (08:41 +0000)
* tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
for ssa names without default_def.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85597 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-tailcall.c

index 5df2195..f0e7617 100644 (file)
@@ -1,3 +1,9 @@
+2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/16864
+       * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
+       for ssa names without default_def.
+
 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/i386/i386.c (ix86_expand_prologue): If the function uses a
index 6599cbd..6e1957c 100644 (file)
@@ -730,7 +730,17 @@ eliminate_tail_call (struct tailcall *t)
       if (!phi)
        {
          tree name = var_ann (param)->default_def;
-         tree new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
+         tree new_name;
+
+         if (!name)
+           {
+             /* It may happen that the tag does not have a default_def in case
+                when all uses of it are dominated by a MUST_DEF.  This however
+                means that it is not necessary to add a phi node for this
+                tag.  */
+             continue;
+           }
+         new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
 
          var_ann (param)->default_def = new_name;
          phi = create_phi_node (name, first);