I noticed we forget to clear the stats and that we do 1:1 replacements. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
Richard. 2011-07-12 Richard Guenther <rguent...@suse.de> * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics. Do not perform no-op changes. Index: gcc/tree-ssa-copyrename.c =================================================================== --- gcc/tree-ssa-copyrename.c (revision 176196) +++ gcc/tree-ssa-copyrename.c (working copy) @@ -296,6 +296,8 @@ rename_ssa_copies (void) FILE *debug; bool updated = false; + memset (&stats, 0, sizeof (stats)); + if (dump_file && (dump_flags & TDF_DETAILS)) debug = dump_file; else @@ -355,16 +357,15 @@ rename_ssa_copies (void) if (!part_var) continue; var = ssa_name (x); + if (SSA_NAME_VAR (var) == SSA_NAME_VAR (part_var)) + continue; if (debug) { - if (SSA_NAME_VAR (var) != SSA_NAME_VAR (part_var)) - { - fprintf (debug, "Coalesced "); - print_generic_expr (debug, var, TDF_SLIM); - fprintf (debug, " to "); - print_generic_expr (debug, part_var, TDF_SLIM); - fprintf (debug, "\n"); - } + fprintf (debug, "Coalesced "); + print_generic_expr (debug, var, TDF_SLIM); + fprintf (debug, " to "); + print_generic_expr (debug, part_var, TDF_SLIM); + fprintf (debug, "\n"); } stats.coalesced++; replace_ssa_name_symbol (var, SSA_NAME_VAR (part_var));