summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2016-04-22 09:05:10 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2016-04-22 09:05:10 +0000
commitf29d86c738a2783d0a96ea0c5652f4409effdf2b (patch)
tree495f97f4f453f46fa0bfadbf2ab0ddb1664a37a5
parentc08d46125dfc2e400c7cb4ac3313747e6cc832f6 (diff)
downloadgcc-f29d86c738a2783d0a96ea0c5652f4409effdf2b.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235360 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/lto-streamer-in.c7
-rw-r--r--gcc/lto-streamer-out.c6
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d0aeef43b45..2f462c41f60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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
* tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
VDEF.
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index dd48777effa..1970d45ee86 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -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);
}
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 6703d4106de..35e58fd24cc 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -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);