This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/65289] New: [5.0 regression] ICE when compiling libjpegturbo with -floop-nest-optimize
- From: "matt at use dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 03 Mar 2015 00:36:58 +0000
- Subject: [Bug middle-end/65289] New: [5.0 regression] ICE when compiling libjpegturbo with -floop-nest-optimize
- Auto-submitted: auto-generated
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