[Bug target/70098] PowerPC64: eigen hits ICE in reload

vmakarov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 8 16:54:00 GMT 2016


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.


More information about the Gcc-bugs mailing list