Bug 41961 - Internal error with -O3 and -ftree-parallelize-loops
Summary: Internal error with -O3 and -ftree-parallelize-loops
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 4.3.5
: P3 normal
Target Milestone: 4.4.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2009-11-06 04:34 UTC by Alexey Salmin
Modified: 2009-11-29 23:04 UTC (History)
2 users (show)

See Also:
Host: Debian, x86_64
Target: Debian, x86_64
Build: Debian, x86_64
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Salmin 2009-11-06 04:34:36 UTC
Hello! I've encountered internal compiler error which affects the whole 4.3 branch (source from vlc):
It fails with 4.3.3, 4.3.4 and 4.3-branch taken from svn (i didn't try 4.3.2).
It works ok with 4.4 branch and latest trunk.

salmin@salmin:~/gccbug$ ../systemroot/bin/g++4.3-branch -v -save-temps -O3 -ftree-parallelize-loops=2 AtmoZoneDefinition_cpped.cpp
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ./configure : (reconfigured) ./configure --prefix=/home/salmin/systemroot --program-suffix=4.3-branch --enable-languages=c,c++
Thread model: posix
gcc version 4.3.5 20091105 (prerelease) (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-O3' '-ftree-parallelize-loops=2' '-shared-libgcc' '-mtune=generic' '-pthread'
 /home/salmin/systemroot/libexec/gcc/x86_64-unknown-linux-gnu/4.3.5/cc1plus -E -quiet -v -D_GNU_SOURCE -D_REENTRANT AtmoZoneDefinition_cpped.cpp -mtune=generic -ftree-parallelize-loops=2 -O3 -fpch-preprocess -o AtmoZoneDefinition_cpped.ii
ignoring nonexistent directory "/home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/../../../../include/c++/4.3.5
 /home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/../../../../include/c++/4.3.5/x86_64-unknown-linux-gnu
 /home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/../../../../include/c++/4.3.5/backward
 /usr/local/include
 /home/salmin/systemroot/include
 /home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/include
 /home/salmin/systemroot/lib/gcc/x86_64-unknown-linux-gnu/4.3.5/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-O3' '-ftree-parallelize-loops=2' '-shared-libgcc' '-mtune=generic' '-pthread'
 /home/salmin/systemroot/libexec/gcc/x86_64-unknown-linux-gnu/4.3.5/cc1plus -fpreprocessed AtmoZoneDefinition_cpped.ii -quiet -dumpbase AtmoZoneDefinition_cpped.cpp -mtune=generic -auxbase AtmoZoneDefinition_cpped -O3 -version -ftree-parallelize-loops=2 -o AtmoZoneDefinition_cpped.s
GNU C++ (GCC) version 4.3.5 20091105 (prerelease) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.3.5 20091105 (prerelease), GMP version 4.3.1, MPFR version 2.4.1-p2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 75c935b73fe74f5f276e5cfd3e1d84c4
AtmoZoneDefinition.cpp: In member function 'void CAtmoZoneDefinition::Fill(unsigned char)':
AtmoZoneDefinition.cpp:22: internal compiler error: in get_smt_for, at tree-ssa-alias.c:3310
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


Removing either -O3 or -ftree-parallelize-loops avoids the crash.
You can find the preprocessed source file here:
http://crocodile.iis.nsk.su/~salmin/AtmoZoneDefinition_cpped.cpp
I can try to reduce it if necessary.
Comment 1 Alexey Salmin 2009-11-06 04:38:11 UTC
> Hello! I've encountered internal compiler error which affects
> the whole 4.3 branch (source from vlc):
I mean I've encountered it trying to compile vlc's source, source of gcc was taken from gcc.gnu.org/svn :)
Comment 2 Richard Biener 2009-11-06 10:08:17 UTC
GCC 4.3 is old and likely not going to be fixed.  Try using GCC 4.4.
Comment 3 Volker Reichelt 2009-11-29 23:04:39 UTC
Reduced testcase:

=================================
struct A
{
  char c[17];
  void foo();
};

void A::foo()
{
  for (int i = 0; i < 17; ++i)
    c[i] = 0;
}
=================================

The bug is fixed in GCC 4.4.0.

(Because -ftree-parallelize-loops was introcuded in GCC 4.3.0,
the crash in GCC 4.3.x is not a regression.)
Comment 4 hjl@gcc.gnu.org 2009-11-30 01:12:02 UTC
Subject: Bug 41961

Author: hjl
Date: Mon Nov 30 01:11:50 2009
New Revision: 154748

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154748
Log:
2009-11-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/41961
	* g++.dg/tree-ssa/pr41961.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/tree-ssa/pr41961.C
Modified:
    trunk/gcc/testsuite/ChangeLog

Comment 5 hjl@gcc.gnu.org 2009-12-11 23:38:03 UTC
Subject: Bug 41961

Author: hjl
Date: Fri Dec 11 23:36:24 2009
New Revision: 155184

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=155184
Log:
Backport testcases from trunk.

2009-12-11  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	2009-12-11  Dodji Seketeli  <dodji@redhat.com>

	PR c++/42225
	* g++.dg/template/typedef24.C: New test.
	* g++.dg/template/typedef25.C: New test.

	2009-12-11  Dodji Seketeli  <dodji@redhat.com>

	PR c++/42251
	* g++.dg/template/const3.C: New test.

	2009-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/42317
	* g++.dg/opt/dtor2.C: New test.
	* g++.dg/opt/dtor2.h: New file.
	* g++.dg/opt/dtor2-aux.cc: New file.

	2009-12-10  Jan Hubicka  <jh@suse.cz>

	PR middle-end/42110
	* g++.dg/torture/pr42110.C: new file.

	2009-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/42244
	* gcc.dg/debug/pr42244.c: New test.

	2009-12-04  David Daney  <ddaney@caviumnetworks.com>

	PR rtl-optimization/42164
	* gcc.c-torture/compile/pr42164.c: New test.

	2009-12-03  Jason Merrill  <jason@redhat.com>

	PR c++/41611
	* g++.dg/abi/guard2.C: New.

	2009-12-03  Dodji Seketeli  <dodji@redhat.com>

	PR c++/42217
	* g++.dg/other/bitfield4.C: New test.

	2009-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/42256
	* g++.dg/inherit/thunk11.C: New test.
	* g++.dg/inherit/thunk11.h: New file.
	* g++.dg/inherit/thunk11-aux.cc: New file.

	2009-12-01  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42237
	* gcc.c-torture/compile/pr42237.c: New test.

	2009-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/42057
	* g++.dg/parse/crash54.C: New.

	2009-11-30  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42196
	* gcc.c-torture/compile/pr42196-1.c: New test.
	* gcc.c-torture/compile/pr42196-2.c: New test.
	* gcc.c-torture/compile/pr42196-3.c: New test.

	2009-11-30  Dodji Seketeli  <dodji@redhat.com>

	PR c++/42069
	* g++.dg/template/typedef23.C: New test.

	2009-11-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/41961
	* g++.dg/tree-ssa/pr41961.C: New.

	2009-11-29  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/42193
	* gcc.dg/vect/pr42193.c: New test.

	2009-11-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42183
	* g++.dg/torture/pr42183.C: New testcase.

	2009-11-27  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42006
	* gcc.c-torture/execute/pr42006.c: New test.

	2009-11-27  Michael Matz  <matz@suse.de>

	PR rtl-optimization/42084
	* gcc.dg/pr42084.c: New test.

	2009-11-27  Michael Matz  <matz@suse.de>

	PR c++/41906
	* g++.dg/tree-ssa/pr41906.C: New testcase.

	2009-11-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/41905
	* g++.dg/tree-ssa/pr41905.C: New testcase.

	2009-11-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42142
	* gcc.c-torture/execute/pr42142.c: New testcase.

	2009-11-24  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42154
	* gcc.c-torture/execute/pr42154.c: New test.

	2009-11-21  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42025
	* gcc.c-torture/compile/pr42025-1.c: New test.
	* gcc.c-torture/compile/pr42025-2.c: New test.

	2009-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/42078
	* gcc.dg/pr42078.c: New test.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/abi/guard2.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/abi/guard2.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/inherit/thunk11-aux.cc
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/inherit/thunk11-aux.cc
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/inherit/thunk11.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/inherit/thunk11.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/inherit/thunk11.h
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/inherit/thunk11.h
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/opt/dtor2-aux.cc
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/opt/dtor2-aux.cc
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/opt/dtor2.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/opt/dtor2.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/opt/dtor2.h
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/opt/dtor2.h
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/other/bitfield4.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/other/bitfield4.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/parse/crash54.C
      - copied unchanged from r155172, trunk/gcc/testsuite/g++.dg/parse/crash54.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/const3.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/template/const3.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef23.C
      - copied unchanged from r155181, trunk/gcc/testsuite/g++.dg/template/typedef23.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef24.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/template/typedef24.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef25.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/template/typedef25.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr42110.C
      - copied unchanged from r155170, trunk/gcc/testsuite/g++.dg/torture/pr42110.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr42183.C
      - copied unchanged from r155181, trunk/gcc/testsuite/g++.dg/torture/pr42183.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/tree-ssa/pr41905.C
      - copied unchanged from r155182, trunk/gcc/testsuite/g++.dg/tree-ssa/pr41905.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/tree-ssa/pr41906.C
      - copied unchanged from r155182, trunk/gcc/testsuite/g++.dg/tree-ssa/pr41906.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/tree-ssa/pr41961.C
      - copied unchanged from r155181, trunk/gcc/testsuite/g++.dg/tree-ssa/pr41961.C
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42164.c
      - copied unchanged from r155170, trunk/gcc/testsuite/gcc.c-torture/compile/pr42164.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
      - copied unchanged from r155181, trunk/gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
      - copied unchanged from r155181, trunk/gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
      - copied unchanged from r155181, trunk/gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42237.c
      - copied unchanged from r155171, trunk/gcc/testsuite/gcc.c-torture/compile/pr42237.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr42006.c
      - copied unchanged from r155181, trunk/gcc/testsuite/gcc.c-torture/execute/pr42006.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr42142.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.c-torture/execute/pr42142.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr42154.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.c-torture/execute/pr42154.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/debug/pr42244.c
      - copied unchanged from r155170, trunk/gcc/testsuite/gcc.dg/debug/pr42244.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr42078.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.dg/pr42078.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr42084.c
      - copied unchanged from r155182, trunk/gcc/testsuite/gcc.dg/pr42084.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/pr42193.c
      - copied unchanged from r155181, trunk/gcc/testsuite/gcc.dg/vect/pr42193.c
Modified:
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog