[Bug target/80210] ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow

bergner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Sep 27 23:13:00 GMT 2017


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

--- Comment #16 from Peter Bergner <bergner at gcc dot gnu.org> ---
While investigating the new failure in Comment 15, I modified the test case
slightly to move the #pragma to the beginning of the test case.  I found I get
another similar looking ICE, but which isn't the same as the bug reported in
Comment 15:

bergner@bns:~/gcc/BUGS/PR80210>
/home/bergner/gcc/build/gcc-fsf-mainline-pr80210-64-base/gcc/xgcc
-B/home/bergner/gcc/build/gcc-fsf-mainline-pr80210-64-base/gcc -O2 -S no-sqrt.i 
no-sqrt.i: In function ‘foo’:
no-sqrt.i:6:1: error: unrecognizable insn:
 }
 ^
(insn 6 3 7 2 (set (reg:DF 121 [ <retval> ])
        (sqrt:DF (reg/v:DF 122 [ a ]))) "no-sqrt.i":5 -1
     (nil))
during RTL pass: vregs
no-sqrt.i:6:1: internal compiler error: in extract_insn, at recog.c:2304
0x101330c7 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/rtl-error.c:108
0x1013310b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/rtl-error.c:116
0x1085747b extract_insn(rtx_insn*)
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/recog.c:2304
0x10555bff instantiate_virtual_regs_in_insn
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/function.c:1591
0x10555bff instantiate_virtual_regs
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/function.c:1959
0x10555bff execute
        /home/bergner/gcc/gcc-fsf-mainline-pr80210-base/gcc/function.c:2008

After debugging this, I have found that this is a problem saving and restoring
the optab values, so basically the opposite problem than we had before.

I have a patch that I am testing that fixes both new problems.


More information about the Gcc-bugs mailing list