lto-streamer-in.c (input_ssa_names): Do not allocate GIMPLE_NOP for all SSA names.
authorRichard Biener <rguenther@suse.de>
Fri, 22 Apr 2016 09:05:10 +0000 (09:05 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 22 Apr 2016 09:05:10 +0000 (09:05 +0000)
2016-04-22  Richard Biener  <rguenther@suse.de>

* lto-streamer-in.c (input_ssa_names): Do not allocate
GIMPLE_NOP for all SSA names.
* lto-streamer-out.c (output_ssa_names): Do not output
SSA names that should have been released.

From-SVN: r235360

gcc/ChangeLog
gcc/lto-streamer-in.c
gcc/lto-streamer-out.c

index d0aeef43b459f3140ed29279ea42b0af6be10bbb..2f462c41f60aef002c2990c0deb9042d9aaf0c27 100644 (file)
@@ -1,3 +1,10 @@
+2016-04-22  Richard Biener  <rguenther@suse.de>
+
+       * lto-streamer-in.c (input_ssa_names): Do not allocate
+       GIMPLE_NOP for all SSA names.
+       * lto-streamer-out.c (output_ssa_names): Do not output
+       SSA names that should have been released.
+
 2016-04-22  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/70740
index dd48777effa2b2a6cec085027794a98c6a460d38..1970d45ee868640a8c4476d33fa7e1b890a140e6 100644 (file)
@@ -881,10 +881,13 @@ input_ssa_names (struct lto_input_block *ib, struct data_in *data_in,
 
       is_default_def = (streamer_read_uchar (ib) != 0);
       name = stream_read_tree (ib, data_in);
-      ssa_name = make_ssa_name_fn (fn, name, gimple_build_nop ());
+      ssa_name = make_ssa_name_fn (fn, name, NULL);
 
       if (is_default_def)
-       set_ssa_default_def (cfun, SSA_NAME_VAR (ssa_name), ssa_name);
+       {
+         set_ssa_default_def (cfun, SSA_NAME_VAR (ssa_name), ssa_name);
+         SSA_NAME_DEF_STMT (ssa_name) = gimple_build_nop ();
+       }
 
       i = streamer_read_uhwi (ib);
     }
index 6703d4106deea19f05f727b59776e1f8d9ff6782..35e58fd24cc911da91f5c79ea9df0d8815548283 100644 (file)
@@ -1816,7 +1816,11 @@ output_ssa_names (struct output_block *ob, struct function *fn)
 
       if (ptr == NULL_TREE
          || SSA_NAME_IN_FREE_LIST (ptr)
-         || virtual_operand_p (ptr))
+         || virtual_operand_p (ptr)
+         /* Simply skip unreleased SSA names.  */
+         || (! SSA_NAME_IS_DEFAULT_DEF (ptr)
+             && (! SSA_NAME_DEF_STMT (ptr)
+                 || ! gimple_bb (SSA_NAME_DEF_STMT (ptr)))))
        continue;
 
       streamer_write_uhwi (ob, i);