https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80928

--- Comment #23 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 41612
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41612&action=edit
patch for the vectorizer ICE

This fixes the slp-perm-8.c ICE but causes libgomp vla1.f90 to ICE with

during RTL pass: loop2_done
/tmp/trunk/libgomp/testsuite/libgomp.fortran/vla1.f90:40:0: internal compiler
error: in patch_jump_insn, at cfgrtl.c:1264
0x86029db patch_jump_insn
        /tmp/trunk/gcc/cfgrtl.c:1264
0x8602ad4 redirect_branch_edge
        /tmp/trunk/gcc/cfgrtl.c:1298
0x8609146 cfg_layout_redirect_edge_and_branch
        /tmp/trunk/gcc/cfgrtl.c:4406
0x85efdc7 redirect_edge_and_branch(edge_def*, basic_block_def*)
        /tmp/trunk/gcc/cfghooks.c:356
0x952ff29 try_forward_edges
        /tmp/trunk/gcc/cfgcleanup.c:575
0x95361ed try_optimize_cfg
        /tmp/trunk/gcc/cfgcleanup.c:2992
0x95367a6 cleanup_cfg(int)
        /tmp/trunk/gcc/cfgcleanup.c:3203
0x89477a9 execute
        /tmp/trunk/gcc/loop-init.c:475
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

so sth goes wrong with labels when splitting the work :/

I suppose one of the side-effects of redirect_edge_and_branch_force
was to duplicate the label appropriately which means we cannot simply use
unchecked_make_edge.

Probably the reason for using the weird add edge to old label and redirect
code :(

Reply via email to