https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85408
Bug ID: 85408 Summary: ICE in patch_jump_insn, at cfgrtl.c:1271 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu*, powerpcspe-*-linux-gnu* gcc-8.0.0-alpha20180415 snapshot (r259389) ICEs when compiling the following snippet w/ -O2 (-O3, -Ofast) -fselective-scheduling -fmodulo-sched -fgraphite-identity -freorder-blocks-and-partition -fno-tree-loop-im: int um; void od (void) { int vq = 0; for (;;) { while (um < 1) vq = (short int) um; while (vq < 1) { for (um = 0; um < 2; ++um) { } ++vq; } } } % powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20180415 -O2 -fselective-scheduling -fmodulo-sched -fgraphite-identity -freorder-blocks-and-partition -fno-tree-loop-im -c smjpdkm5.c during RTL pass: sched1 smjpdkm5.c: In function 'od': smjpdkm5.c:22:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1271 } ^ 0x74d7a2 patch_jump_insn /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgrtl.c:1271 0x74dd52 redirect_branch_edge /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgrtl.c:1297 0x74de22 rtl_redirect_edge_and_branch /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgrtl.c:1430 0x7315c8 redirect_edge_and_branch(edge_def*, basic_block_def*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfghooks.c:369 0x138eec9 try_forward_edges /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgcleanup.c:550 0x138eec9 try_optimize_cfg /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgcleanup.c:2942 0x13910ab cleanup_cfg(int) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/cfgcleanup.c:3156 0xc1a15f sel_global_init /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/sel-sched.c:7667 0xc1a15f run_selective_scheduling() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/sel-sched.c:7730 0xbf0d04 rest_of_handle_sched /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/sched-rgn.c:3718 0xbf0d04 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180415/work/gcc-8-20180415/gcc/sched-rgn.c:3828 I've been hitting it for a while but am filing a PR only now, when many selective scheduling fixes have actually started landing on the trunk.