X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree-ssa-sink.c;h=ebf54e2070b83eb453cf2f883d434838b44bf981;hb=9636921b6f9c9162ae3aeb278b588b6ee37a3842;hp=40a3640b7368575f7f3f0ac91da1635574c4084f;hpb=20099e352f87c3265c44cd3341fd3aec25cb0fb4;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c index 40a3640b736..ebf54e2070b 100644 --- a/gcc/tree-ssa-sink.c +++ b/gcc/tree-ssa-sink.c @@ -189,20 +189,7 @@ is_hidden_global_store (tree stmt) } else if (INDIRECT_REF_P (lhs)) - { - tree ptr = TREE_OPERAND (lhs, 0); - struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr); - tree nmt = (pi) ? pi->name_mem_tag : NULL_TREE; - tree smt = symbol_mem_tag (SSA_NAME_VAR (ptr)); - - /* If either the name tag or the symbol tag for PTR is a - global variable, then the store is necessary. */ - if ((nmt && is_global_var (nmt)) - || (smt && is_global_var (smt))) - { - return true; - } - } + return may_point_to_global_var (TREE_OPERAND (lhs, 0)); else gcc_unreachable (); } @@ -546,8 +533,7 @@ execute_sink_code (void) calculate_dominance_info (CDI_DOMINATORS); calculate_dominance_info (CDI_POST_DOMINATORS); sink_code_in_bb (EXIT_BLOCK_PTR); - if (dump_file && (dump_flags & TDF_STATS)) - fprintf (dump_file, "Sunk statements:%d\n", sink_stats.sunk); + statistics_counter_event (cfun, "Sunk statements", sink_stats.sunk); free_dominance_info (CDI_POST_DOMINATORS); remove_fake_exit_edges (); loop_optimizer_finalize ();