diff options
Diffstat (limited to 'gcc/ipa-struct-reorg.c')
-rw-r--r-- | gcc/ipa-struct-reorg.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ipa-struct-reorg.c b/gcc/ipa-struct-reorg.c index ab70c98..9ca5364 100644 --- a/gcc/ipa-struct-reorg.c +++ b/gcc/ipa-struct-reorg.c @@ -495,8 +495,6 @@ static void finalize_var_creation (tree new_decl) { add_referenced_var (new_decl); - if (is_global_var (new_decl)) - mark_call_clobbered (new_decl, ESCAPE_UNKNOWN); mark_sym_for_renaming (new_decl); } @@ -1249,6 +1247,13 @@ create_general_new_stmt (struct access_site *acc, tree new_type) gimple new_stmt = gimple_copy (old_stmt); unsigned i; + /* We are really building a new stmt, clear the virtual operands. */ + if (gimple_has_mem_ops (new_stmt)) + { + gimple_set_vuse (new_stmt, NULL_TREE); + gimple_set_vdef (new_stmt, NULL_TREE); + } + for (i = 0; VEC_iterate (tree, acc->vars, i, var); i++) { tree *pos; |