On Thu, Nov 15, 2012 at 11:25:55AM +0100, Jan Hubicka wrote: > PR tree-optimization/54717 > * tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges > with ANTIC_IN.
As Richard is still away, Steven, could you please comment on this? > Index: tree-ssa-pre.c > =================================================================== > *** tree-ssa-pre.c (revision 193503) > --- tree-ssa-pre.c (working copy) > *************** do_partial_partial_insertion (basic_bloc > *** 3525,3531 **** > may cause regressions on the speed path. */ > FOR_EACH_EDGE (succ, ei, block->succs) > { > ! if (bitmap_set_contains_value (PA_IN (succ->dest), val)) > { > if (optimize_edge_for_speed_p (succ)) > do_insertion = true; > --- 3525,3532 ---- > may cause regressions on the speed path. */ > FOR_EACH_EDGE (succ, ei, block->succs) > { > ! if (bitmap_set_contains_value (PA_IN (succ->dest), val) > ! || bitmap_set_contains_value (ANTIC_IN (succ->dest), val)) > { > if (optimize_edge_for_speed_p (succ)) > do_insertion = true; All I wonder is about the dump message after this change: if (dump_file && (dump_flags & TDF_DETAILS)) { fprintf (dump_file, "Skipping partial partial redundancy " "for expression "); print_pre_expr (dump_file, expr); fprintf (dump_file, " (%04d), not partially anticipated " "on any to be optimized for speed edges\n", val); } Isn't "not partially anticipated" out of date, now that it also checks for being (non-partially) anticipated on some speed edges? Jakub