Bug 1539812 - [ppc64le] internal compiler error: in lra_set_insn_recog_data, at lra.c:9 98
Summary: [ppc64le] internal compiler error: in lra_set_insn_recog_data, at lra.c:9 98
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: rawhide
Hardware: ppc64le
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-01-29 16:33 UTC by Severin Gehwolf
Modified: 2018-02-13 09:07 UTC (History)
7 users (show)

Fixed In Version: gcc-8.0.1-0.13.fc28
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-02-13 09:07:45 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Pre-processed C source code file. (222.43 KB, text/plain)
2018-01-29 16:33 UTC, Severin Gehwolf
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 84112 0 None None None 2018-01-29 17:12:16 UTC

Description Severin Gehwolf 2018-01-29 16:33:06 UTC
Created attachment 1387908 [details]
Pre-processed C source code file.

Description of problem:
This issue was originally discovered by trying to compile java-1.8.0-openjdk.

Version-Release number of selected component (if applicable):
# rpm -q gcc
gcc-8.0.1-0.6.fc28.ppc64le

How reproducible:
100%

Steps to Reproduce:
$ /usr/bin/gcc -Wno-unused -Wno-parentheses -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -D_LP64=1 -D_LITTLE_ENDIAN -DABI_ELFv2 -DLINUX -DNDEBUG -DARCH='"ppc64le"' -Dppc64le -DRELEASE='"1.8.0_161"' -g -pipe -Wformat -Wno-cpp -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fstack-clash-protection -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-lifetime-dse -fPIC -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES -DMLIB_NO_LIBSUNMATH -DMLIB_OS64BIT        -g -O3  -DTHIS_FILE='"mlib_c_ImageThresh1_U8.c"' -c -MMD -MF /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/build/jdk8.build/jdk/objs/libmlib_image/mlib_c_ImageThresh1_U8.d -o /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/build/jdk8.build/jdk/objs/libmlib_image/mlib_c_ImageThresh1_U8.o /tmp/ccimn3X1.c


Actual results:
cc1: warning: command line option ‘-std=gnu++98’ is valid for C++/ObjC++ but not for C                                                                                                                             *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.                                                                                    Event                            | Plugins                                                                                                                                                                         PLUGIN_FINISH_UNIT               | annobin: Generate final annotations
PLUGIN_START_UNIT                | annobin: Generate global annotations
PLUGIN_ALL_PASSES_END            | annobin: Generate per-function annotations
during RTL pass: reload
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/jdk/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c: In function ‘mlib_c_ImageThresh1_U83’:
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/jdk/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c:270:1: internal compiler error: in lra_set_insn_recog_data, at lra.c:9
98
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
{standard input}: Assembler messages:
{standard input}: Error: .size expression for ccimn3X1.c does not evaluate to a constant
Preprocessed source stored into /tmp/cca3CQcQ.out file, please attach this to your bugreport.

Expected results:
File compiles fine with no internal compiler errors.

Additional info:
The same file compiles fine on other architectures. E.g. x86_64, i686 or ppc64 (BE).

The code section in question where there compiler barfs looks like this (around line 7279):

for (i = 0; i < height; i++) {

    for (j = 0; j <= (width - 8); j += 8) {
      pdst_row[j] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)));
      pdst_row[j + 1] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 1])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 1])) >> 31)));
      pdst_row[j + 2] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 2])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 2])) >> 31)));
      pdst_row[j + 3] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 3])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 3])) >> 31)));
      pdst_row[j + 4] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 4])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 4])) >> 31)));
      pdst_row[j + 5] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 5])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 5])) >> 31)));
      pdst_row[j + 6] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 6])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 6])) >> 31)));
      pdst_row[j + 7] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 7])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 7])) >> 31)));
    }

    for (; j < width; j++) {
      pdst_row[j] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)));
    }

    psrc_row += src_stride;
    pdst_row += dst_stride;
  }

Comment 1 Jakub Jelinek 2018-02-13 09:07:45 UTC
Should be fixed in gcc-8.0.1-0.13.fc28.


Note You need to log in before you can comment on or make changes to this bug.