https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70098
--- Comment #5 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Anton Blanchard from comment #0) > I hit the following ICE when building eigen: > > # g++ -O3 -c test2.cpp > test2.cpp: In function ‘void fn3(Matrix<double, 2, 2>)’: > test2.cpp:59:1: error: unable to generate reloads for: > } > ^ > (jump_insn 17 12 18 2 (parallel [ > (set (pc) > (if_then_else (ne (reg:DI 3 3) > (const_int 1 [0x1])) > (label_ref 25) > (pc))) > (set (reg:DI 156 [ _4 ]) > (plus:DI (reg:DI 3 3) > (const_int -1 [0xffffffffffffffff]))) > (clobber (reg:CC 172)) > (clobber (reg:DI 173)) > ]) test2.cpp:46 775 {*ctrdi_internal1} > (expr_list:REG_UNUSED (reg:DI 173) > (expr_list:REG_UNUSED (reg:CC 172) > (expr_list:REG_DEAD (reg:DI 3 3) > (int_list:REG_BR_PROB 2900 (nil))))) > -> 25) > test2.cpp:59:1: internal compiler error: in curr_insn_transform, at > lra-constraints.c:3552 > 0x10a711b3 _fatal_insn(char const*, rtx_def const*, char const*, int, char > const*) > ../../gcc/gcc/rtl-error.c:108 > 0x1093d313 curr_insn_transform > ../../gcc/gcc/lra-constraints.c:3552 > 0x1093e4df lra_constraints(bool) > ../../gcc/gcc/lra-constraints.c:4494 > 0x10923513 lra(_IO_FILE*) > ../../gcc/gcc/lra.c:2286 > 0x108c3ffb do_reload > ../../gcc/gcc/ira.c:5396 > 0x108c3ffb execute > ../../gcc/gcc/ira.c:5580 Sorry, I can not understand. As I know PPC64 uses the reload pass by default. It will not use LRA as default for GCC6. Although the dump indicates LRA using I don't see -mlra on your commnad line. Should I use -mlra to reproduce the bug? In any case, it will be a lower priority task for me because LRA is not a default for ppc64. May be I can start to work on it in a week or two.