http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60418
--- Comment #24 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to rguent...@suse.de from comment #23) > On Mon, 10 Mar 2014, hjl.tools at gmail dot com wrote: > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60418 > > > > --- Comment #20 from H.J. Lu <hjl.tools at gmail dot com> --- > > (In reply to Richard Biener from comment #13) > > > Huh, adding a pre-header should _never_ do sth like that. Can you produce > > > a small testcase that exhibits these kind of changes with adding/removing > > > a preheader? > > > > copyprop2 pass removed a preheader and cunrolli pass added it back: > > > > <bb 3>: > > # n_213 = PHI <1(2)> > > > > <bb 8>: > > # n_8 = PHI <n_213(3), n_218(9)> > > Not sure how it manages to add this kind of PHI node for just > adding a preheader? That looks odd to me. > (gdb) bt #0 make_ssa_name_fn (fn=0x7f039cc63d20, var=0x7f039d127ed8, stmt=0x7f039c095800) at ../../../../gcc/gcc/tree-ssanames.c:133 #1 0x0000000000c66392 in copy_ssa_name_fn (fn=0x7f039cc63d20, name=0x7f039cacdcf0, stmt=0x7f039c095800) at ../../../../gcc/gcc/tree-ssanames.c:459 #2 0x0000000000a7e389 in copy_ssa_name (var=0x7f039cacdcf0, stmt=0x7f039c095800) at ../../../../gcc/gcc/tree-ssanames.h:118 #3 0x0000000000a8d874 in gimple_make_forwarder_block (fallthru=0x7f039d777f18) at ../../../../gcc/gcc/tree-cfg.c:5291 #4 0x000000000061a663 in make_forwarder_block (bb=0x7f039d0c7a90, redirect_edge_p=0x627199 <mfb_keep_just(edge_def*)>, new_bb_cbk=0x0) at ../../../../gcc/gcc/cfghooks.c:912 #5 0x0000000000627416 in create_preheader (loop=0x7f039d25e280, flags=1) at ../../../../gcc/gcc/cfgloopmanip.c:1552 #6 0x000000000062756a in create_preheaders (flags=1) at ../../../../gcc/gcc/cfgloopmanip.c:1602 #7 0x00000000008b76ee in apply_loop_flags (flags=15) at ../../../../gcc/gcc/loop-init.c:63 #8 0x00000000008b780d in loop_optimizer_init (flags=15) at ../../../../gcc/gcc/loop-init.c:121 #9 0x0000000000b9ef15 in tree_complete_unroll_inner () at ../../../../gcc/gcc/tree-ssa-loop-ivcanon.c:1377 #10 0x0000000000b9efcf in (anonymous namespace)::pass_complete_unrolli::execute ---Type <return> to continue, or q <return> to quit--- (this=0x28d2110) at ../../../../gcc/gcc/tree-ssa-loop-ivcanon.c:1422 #11 0x0000000000968b76 in execute_one_pass (pass=0x28d2110) at ../../../../gcc/gcc/passes.c:2229 #12 0x0000000000968d8f in execute_pass_list (pass=0x28d2110) at ../../../../gcc/gcc/passes.c:2282 #13 0x0000000000968dc0 in execute_pass_list (pass=0x28d1ed0) at ../../../../gcc/gcc/passes.c:2283 #14 0x000000000064676a in expand_function (node=0x7f039dba5668) at ../../../../gcc/gcc/cgraphunit.c:1774 #15 0x0000000000646d5e in expand_all_functions () at ../../../../gcc/gcc/cgraphunit.c:1908 #16 0x000000000064772a in compile () at ../../../../gcc/gcc/cgraphunit.c:2252 #17 0x000000000059a615 in lto_main () at ../../../../gcc/gcc/lto/lto.c:3427 #18 0x0000000000a53c2c in compile_file () at ../../../../gcc/gcc/toplev.c:548 #19 0x0000000000a55dc3 in do_compile () at ../../../../gcc/gcc/toplev.c:1914 #20 0x0000000000a55f2e in toplev_main (argc=24, argv=0x28ac850) at ../../../../gcc/gcc/toplev.c:1990 #21 0x00000000011dde12 in main (argc=24, argv=0x7fffdea91ed8) at ../../../../gcc/gcc/main.c:36 (gdb)