diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-01 11:48:04 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-01 11:48:04 +0000 |
commit | e70e8b13a21cfe8866fc9c3357c6f42962246aaa (patch) | |
tree | 103b768984c681c0e66bf0bd7b06f89dbdc9cce1 /gcc/tree-predcom.c | |
parent | a575acb283ccbe98f47a7f5b58b15bdcb6df313f (diff) | |
download | gcc-e70e8b13a21cfe8866fc9c3357c6f42962246aaa.tar.gz |
2012-08-01 Richard Guenther <rguenther@suse.de>
* tree-flow.h (struct gimple_df): Remove syms_to_rename member,
add ssa_renaming_needed and rename_vops flags.
(SYMS_TO_RENAME): Remove.
(symbol_marked_for_renaming): Likewise.
(mark_virtual_ops_for_renaming): Likewise.
* tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
New globals.
(mark_for_renaming, marked_for_renaming): New functions.
(symbol_marked_for_renaming): Remove.
(dump_currdefs): Adjust.
(maybe_replace_use): Likewise.
(maybe_replace_use_in_debug_stmt): Likewise.
(maybe_register_def): Likewise.
(rewrite_update_phi_arguments): Likewise.
(rewrite_update_enter_block): Likewise.
(fini_ssa_renamer): Clear update SSA status here ...
(delete_update_ssa): ... not here. Free rename set.
(prepare_block_for_update): Compute which decls need renaming.
(dump_update_ssa): Adjust.
(mark_sym_for_renaming): Adjust update SSA status for virtuals.
(need_ssa_update_p): Adjust.
(insert_updated_phi_nodes_for): Likewise.
(update_ssa): Likewise.
* tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
for virtual and real operands.
(finalize_ssa_uses): Likewise.
* tree-ssanames.c (init_ssanames): Adjust.
* tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
execute_update_addresses_taken): Add bitmap to keep track of which
candidates are suitable for rewriting and later renaming by SSA
update.
* matrix-reorg.c (transform_access_sites): Do not rename all defs.
* tree-dfa.c (make_rename_temp): Do not mark real operands for renaming.
* cgraphunit.c (assemble_thunk): Likewise.
* gimplify.c (gimple_regimplify_operands): Likewise.
(force_gimple_operand_1): Likewise.
* ipa-prop.c (ipa_modify_formal_parameters): Likewise.
* tree-inline.c (declare_return_variable): Likewise.
* tree-parloops.c (separate_decls_in_region_stmt): Do not call
mark_virtual_ops_for_renaming.
(create_stores_for_reduction): Likewise.
(create_loads_and_stores_for_name): Likewise.
* tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
(initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
(execute_load_motion): Likewise.
(remove_stmt): Likewise.
(execute_pred_commoning_chain): Likewise.
* tree-sra.c (create_access_replacement): Do not rename real
operands.
(get_unrenamed_access_replacement): Unify with ...
(get_access_replacement): ... this.
(get_repl_default_def_ssa_name): Adjust.
* tree-ssa-loop-im.c (move_computations_stmt): Manually update
virtual SSA form.
(rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
* tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190033 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-predcom.c')
-rw-r--r-- | gcc/tree-predcom.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index 29080b7e06f..cb7d0883222 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -1440,30 +1440,6 @@ get_init_expr (chain_p chain, unsigned index) return VEC_index (tree, chain->inits, index); } -/* Marks all virtual operands of statement STMT for renaming. */ - -void -mark_virtual_ops_for_renaming (gimple stmt) -{ - tree var; - - if (gimple_code (stmt) == GIMPLE_PHI) - { - var = PHI_RESULT (stmt); - if (is_gimple_reg (var)) - return; - - if (TREE_CODE (var) == SSA_NAME) - var = SSA_NAME_VAR (var); - mark_sym_for_renaming (var); - return; - } - - update_stmt (stmt); - if (gimple_vuse (stmt)) - mark_sym_for_renaming (gimple_vop (cfun)); -} - /* Returns a new temporary variable used for the I-th variable carrying value of REF. The variable's uid is marked in TMP_VARS. */ @@ -1600,7 +1576,6 @@ initialize_root_vars_lm (struct loop *loop, dref root, bool written, else { gimple init_stmt = gimple_build_assign (var, init); - mark_virtual_ops_for_renaming (init_stmt); gsi_insert_on_edge_immediate (entry, init_stmt); } } @@ -1634,7 +1609,6 @@ execute_load_motion (struct loop *loop, chain_p chain, bitmap tmp_vars) FOR_EACH_VEC_ELT (dref, chain->refs, i, a) { bool is_read = DR_IS_READ (a->ref); - mark_virtual_ops_for_renaming (a->stmt); if (DR_IS_WRITE (a->ref)) { @@ -1730,7 +1704,7 @@ remove_stmt (gimple stmt) next = single_nonlooparound_use (name); reset_debug_uses (stmt); - mark_virtual_ops_for_renaming (stmt); + unlink_stmt_vdef (stmt); gsi_remove (&bsi, true); release_defs (stmt); @@ -1751,7 +1725,7 @@ execute_pred_commoning_chain (struct loop *loop, chain_p chain, bitmap tmp_vars) { unsigned i; - dref a, root; + dref a; tree var; if (chain->combined) @@ -1766,13 +1740,9 @@ execute_pred_commoning_chain (struct loop *loop, chain_p chain, /* For non-combined chains, set up the variables that hold its value, and replace the uses of the original references by these variables. */ - root = get_chain_root (chain); - mark_virtual_ops_for_renaming (root->stmt); - initialize_root (loop, chain, tmp_vars); for (i = 1; VEC_iterate (dref, chain->refs, i, a); i++) { - mark_virtual_ops_for_renaming (a->stmt); var = VEC_index (tree, chain->vars, chain->length - a->distance); replace_ref_with (a->stmt, var, false, false); } |