re PR middle-end/50260 (internal compiler error: Segmentation fault at ../../gcc...
authorMichael Matz <matz@suse.de>
Fri, 2 Sep 2011 18:31:47 +0000 (18:31 +0000)
committerMichael Matz <matz@gcc.gnu.org>
Fri, 2 Sep 2011 18:31:47 +0000 (18:31 +0000)
PR middle-end/50260
* ipa-split.c (split_function): Call add_referenced_var.

* tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
(cond_if_else_store_replacement_1): Ditto.
* tree-ssa-pre.c (get_representative_for): Ditto.
(create_expression_by_pieces): Ditto.
(insert_into_preds_of_block): Ditto.
* tree-sra.c (create_access_replacement): Ditto.
(get_replaced_param_substitute): Ditto.

From-SVN: r178489

gcc/ChangeLog
gcc/ipa-split.c
gcc/tree-sra.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-pre.c

index 268eabd..b6aeebb 100644 (file)
@@ -1,3 +1,16 @@
+2011-09-02  Michael Matz  <matz@suse.de>
+
+       PR middle-end/50260
+       * ipa-split.c (split_function): Call add_referenced_var.
+
+       * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
+       (cond_if_else_store_replacement_1): Ditto.
+       * tree-ssa-pre.c (get_representative_for): Ditto.
+       (create_expression_by_pieces): Ditto.
+       (insert_into_preds_of_block): Ditto.
+       * tree-sra.c (create_access_replacement): Ditto.
+       (get_replaced_param_substitute): Ditto.
+
 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
 
        * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
index 4373a1b..d5e5c69 100644 (file)
@@ -988,6 +988,9 @@ split_function (struct split_point *split_point)
        arg = gimple_default_def (cfun, parm);
        if (!arg)
          {
+           /* This parm wasn't used up to now, but is going to be used,
+              hence register it.  */
+           add_referenced_var (parm);
            arg = make_ssa_name (parm, gimple_build_nop ());
            set_default_def (parm, arg);
          }
index 2d97845..203c482 100644 (file)
@@ -1825,7 +1825,6 @@ create_access_replacement (struct access *access, bool rename)
   tree repl;
 
   repl = create_tmp_var (access->type, "SR");
-  get_var_ann (repl);
   add_referenced_var (repl);
   if (rename)
     mark_sym_for_renaming (repl);
@@ -4106,7 +4105,6 @@ get_replaced_param_substitute (struct ipa_parm_adjustment *adj)
       DECL_NAME (repl) = get_identifier (pretty_name);
       obstack_free (&name_obstack, pretty_name);
 
-      get_var_ann (repl);
       add_referenced_var (repl);
       adj->new_ssa_base = repl;
     }
index 30eea31..4275344 100644 (file)
@@ -1269,10 +1269,7 @@ cond_store_replacement (basic_block middle_bb, basic_block join_bb,
   /* 2) Create a temporary where we can store the old content
         of the memory touched by the store, if we need to.  */
   if (!condstoretemp || TREE_TYPE (lhs) != TREE_TYPE (condstoretemp))
-    {
-      condstoretemp = create_tmp_reg (TREE_TYPE (lhs), "cstore");
-      get_var_ann (condstoretemp);
-    }
+    condstoretemp = create_tmp_reg (TREE_TYPE (lhs), "cstore");
   add_referenced_var (condstoretemp);
 
   /* 3) Insert a load from the memory of the store to the temporary
@@ -1355,10 +1352,7 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb,
   /* 2) Create a temporary where we can store the old content
        of the memory touched by the store, if we need to.  */
   if (!condstoretemp || TREE_TYPE (lhs) != TREE_TYPE (condstoretemp))
-    {
-      condstoretemp = create_tmp_reg (TREE_TYPE (lhs), "cstore");
-      get_var_ann (condstoretemp);
-    }
+    condstoretemp = create_tmp_reg (TREE_TYPE (lhs), "cstore");
   add_referenced_var (condstoretemp);
 
   /* 3) Create a PHI node at the join block, with one argument
index d784bac..6f3b03b 100644 (file)
@@ -1399,7 +1399,7 @@ get_representative_for (const pre_expr e)
   if (!pretemp || exprtype != TREE_TYPE (pretemp))
     {
       pretemp = create_tmp_reg (exprtype, "pretmp");
-      get_var_ann (pretemp);
+      add_referenced_var (pretemp);
     }
 
   name = make_ssa_name (pretemp, gimple_build_nop ());
@@ -3178,10 +3178,7 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
   /* Build and insert the assignment of the end result to the temporary
      that we will return.  */
   if (!pretemp || exprtype != TREE_TYPE (pretemp))
-    {
-      pretemp = create_tmp_reg (exprtype, "pretmp");
-      get_var_ann (pretemp);
-    }
+    pretemp = create_tmp_reg (exprtype, "pretmp");
 
   temp = pretemp;
   add_referenced_var (temp);
@@ -3441,10 +3438,7 @@ insert_into_preds_of_block (basic_block block, unsigned int exprnum,
 
   /* Now build a phi for the new variable.  */
   if (!prephitemp || TREE_TYPE (prephitemp) != type)
-    {
-      prephitemp = create_tmp_var (type, "prephitmp");
-      get_var_ann (prephitemp);
-    }
+    prephitemp = create_tmp_var (type, "prephitmp");
 
   temp = prephitemp;
   add_referenced_var (temp);