[Bug rtl-optimization/79438] New: [7 Regression] ICE during RA w/ -O3 (or -Ofast) -funroll-loops for 32-bit BE powerpc target

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Thu Feb 9 07:19:00 GMT 2017


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

            Bug ID: 79438
           Summary: [7 Regression] ICE during RA w/ -O3 (or -Ofast)
                    -funroll-loops for 32-bit BE powerpc target
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, ra
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: powerpc-e500v2-linux-gnuspe

1. gcc-7.0.0-alpha20170205 snapshot fails to compile the following snippet w/
-O3 (or -Ofast) -funroll-loops:

int uq;
short int au;

void
sa (int na)
{
  int i7;

  for (i7 = 0; i7 < 81; ++i7)
    {
      uq ^= 1;
      au ^= na;
    }
}

% powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20170205 -O3 -funroll-loops -c
t0xyp7os.c 
t0xyp7os.c: In function 'sa':
t0xyp7os.c:14:1: internal compiler error: in lra_set_insn_recog_data, at
lra.c:965
 }
 ^
0x30704833833 lra_set_insn_recog_data(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:963
0x30704834a07 lra_get_insn_recog_data
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-int.h:487
0x30704834a07 lra_update_insn_regno_info(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1585
0x30704834e60 lra_push_insn_1
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1736
0x30704834e60 lra_push_insn(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1744
0x307048350ff push_insns
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1787
0x30704835702 lra_process_new_insns(rtx_insn*, rtx_insn*, rtx_insn*, char
const*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1845
0x3070484d747 curr_insn_transform
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-constraints.c:4242
0x3070484f1c6 lra_constraints(bool)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-constraints.c:4732
0x30704836522 lra(_IO_FILE*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:2378
0x307047e3570 do_reload
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5400
0x307047e3570 execute
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5584

2. Turning LRA off yields the following:

% powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20170205 -O3 -funroll-loops -c
t0xyp7os.c -mno-lra
t0xyp7os.c: In function 'sa':
t0xyp7os.c:14:1: error: unrecognizable insn:
 }
 ^
(insn 194 77 53 4 (set (const_vector:V4HI [
                (const_int 0 [0])
                (const_int 0 [0])
                (const_int 0 [0])
                (const_int 0 [0])
            ])
        (reg:V4HI 9 9)) "t0xyp7os.c":12 -1
     (nil))
t0xyp7os.c:14:1: internal compiler error: in extract_insn, at recog.c:2311
0x2d7dca3c505 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/rtl-error.c:108
0x2d7dca3c55c _fatal_insn_not_found(rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/rtl-error.c:116
0x2d7dca076af extract_insn(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/recog.c:2311
0x2d7dca0775f extract_insn_cached(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/recog.c:2201
0x2d7dc72b68b cleanup_subreg_operands(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/final.c:3138
0x2d7dca3a107 reload(rtx_insn*, int)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/reload1.c:1235
0x2d7dc8af1fe do_reload
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5412
0x2d7dc8af1fe execute
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5584


More information about the Gcc-bugs mailing list