diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-22 09:05:10 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-22 09:05:10 +0000 |
commit | f29d86c738a2783d0a96ea0c5652f4409effdf2b (patch) | |
tree | 495f97f4f453f46fa0bfadbf2ab0ddb1664a37a5 | |
parent | c08d46125dfc2e400c7cb4ac3313747e6cc832f6 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/lto-streamer-in.c | 7 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 6 |
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); |