This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/65289] New: [5.0 regression] ICE when compiling libjpegturbo with -floop-nest-optimize


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

            Bug ID: 65289
           Summary: [5.0 regression] ICE when compiling libjpegturbo with
                    -floop-nest-optimize
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matt at use dot net

Created attachment 34929
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34929&action=edit
pre-processed source file that reproduces the crash

Using either Ubuntu's gcc-snapshot on amd64 and my armv6j cross-compiling
toolchain, I get a crash when compiling libjpegturbo 1.4.0 from sources when
using -floop-nest-optimize. Pre-processed source is attached (generated by
cross-toolchain, but amd64 GCC reproduces same crash).

The crash does NOT happen with 4.9.1 from Ubuntu 14.10 on amd64.

Ubuntu version string: 
gcc (Ubuntu 20150225-1ubuntu1) 5.0.0 20150225 (experimental) [trunk revision
220970]

armv6j cross-compiler built from SVN version string:
arm-kindle-linux-gnueabi-gcc (GCC) 5.0.0 20150224 (experimental)

To reproduce:
CFLAGS="-O2 -floop-nest-optimize" CC=/path/to/gcc5/bin/gcc ./configure
--disable-static --without-simd && make
.... or....
/path/to/gcc5/bin/gcc -O2 -floop-nest-optimize turbojpeg.c.i

result:

turbojpeg.c: In function 'tjCompress2':
turbojpeg.c:713:6: error: loop 3's latch is marked as part of irreducible
region
 DLLEXPORT int DLLCALL tjCompress2(tjhandle handle, unsigned char *srcBuf,
      ^
turbojpeg.c:713:6: error: edge from 64 to 78 should be marked irreducible
turbojpeg.c:713:6: error: basic block 78 should be marked irreducible
turbojpeg.c:713:6: error: edge from 78 to 82 should be marked irreducible
turbojpeg.c:713:6: error: edge from 78 to 92 should be marked irreducible
turbojpeg.c:713:6: error: basic block 92 should be marked irreducible
turbojpeg.c:713:6: error: edge from 92 to 98 should be marked irreducible
turbojpeg.c:713:6: error: edge from 92 to 95 should be marked irreducible
turbojpeg.c:713:6: error: basic block 95 should be marked irreducible
turbojpeg.c:713:6: error: edge from 95 to 93 should be marked irreducible
turbojpeg.c:713:6: error: basic block 98 should be marked irreducible
turbojpeg.c:713:6: error: edge from 98 to 96 should be marked irreducible
turbojpeg.c:713:6: error: edge from 99 to 100 should be marked irreducible
turbojpeg.c:713:6: error: basic block 100 should be marked irreducible
turbojpeg.c:713:6: error: edge from 100 to 94 should be marked irreducible
turbojpeg.c:713:6: error: basic block 94 should be marked irreducible
turbojpeg.c:713:6: error: edge from 94 to 93 should be marked irreducible
turbojpeg.c:713:6: error: basic block 93 should be marked irreducible
turbojpeg.c:713:6: error: edge from 93 to 81 should be marked irreducible
turbojpeg.c:713:6: error: basic block 81 should be marked irreducible
turbojpeg.c:713:6: error: edge from 81 to 79 should be marked irreducible
turbojpeg.c:713:6: error: basic block 82 should be marked irreducible
turbojpeg.c:713:6: error: edge from 82 to 88 should be marked irreducible
turbojpeg.c:713:6: error: edge from 82 to 85 should be marked irreducible
turbojpeg.c:713:6: error: basic block 85 should be marked irreducible
turbojpeg.c:713:6: error: edge from 85 to 83 should be marked irreducible
turbojpeg.c:713:6: error: basic block 88 should be marked irreducible
turbojpeg.c:713:6: error: edge from 88 to 86 should be marked irreducible
turbojpeg.c:713:6: error: edge from 89 to 90 should be marked irreducible
turbojpeg.c:713:6: error: basic block 90 should be marked irreducible
turbojpeg.c:713:6: error: edge from 90 to 84 should be marked irreducible
turbojpeg.c:713:6: error: basic block 84 should be marked irreducible
turbojpeg.c:713:6: error: edge from 84 to 83 should be marked irreducible
turbojpeg.c:713:6: error: basic block 83 should be marked irreducible
turbojpeg.c:713:6: error: edge from 83 to 80 should be marked irreducible
turbojpeg.c:713:6: error: basic block 80 should be marked irreducible
turbojpeg.c:713:6: error: edge from 80 to 79 should be marked irreducible
turbojpeg.c:713:6: error: basic block 79 should be marked irreducible
turbojpeg.c:713:6: error: edge from 79 to 67 should be marked irreducible
turbojpeg.c:713:6: error: basic block 67 should be marked irreducible
turbojpeg.c:713:6: error: edge from 67 to 65 should be marked irreducible
turbojpeg.c:713:6: error: edge from 68 to 71 should be marked irreducible
turbojpeg.c:713:6: error: basic block 71 should be marked irreducible
turbojpeg.c:713:6: error: edge from 71 to 69 should be marked irreducible
turbojpeg.c:713:6: error: basic block 72 should not be marked irreducible
turbojpeg.c:713:6: error: edge from 72 to 77 should not be marked irreducible
turbojpeg.c:713:6: error: basic block 77 should not be marked irreducible
turbojpeg.c:713:6: error: edge from 77 to 75 should not be marked irreducible
turbojpeg.c:713:6: error: basic block 75 should not be marked irreducible
turbojpeg.c:713:6: error: edge from 75 to 76 should be marked irreducible
turbojpeg.c:713:6: error: basic block 73 should not be marked irreducible
turbojpeg.c:713:6: error: edge from 73 to 72 should not be marked irreducible
turbojpeg.c:713:6: error: basic block 76 should be marked irreducible
turbojpeg.c:713:6: error: edge from 76 to 70 should be marked irreducible
turbojpeg.c:713:6: internal compiler error: in verify_loop_structure, at
cfgloop.c:1652


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]