Bug 27291 - [4.2 regression] verify_flow_info failed: too many outgoing branch edges from bb 4
Summary: [4.2 regression] verify_flow_info failed: too many outgoing branch edges from...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 4.2.0
: P3 normal
Target Milestone: 4.2.0
Assignee: Zdenek Dvorak
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords: ice-on-valid-code, patch
Depends on:
Blocks:
 
Reported: 2006-04-24 17:14 UTC by Martin Michlmayr
Modified: 2006-05-02 04:44 UTC (History)
3 users (show)

See Also:
Host: powerpc-linux-gnu
Target: powerpc-linux-gnu
Build: powerpc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2006-04-27 06:26:58


Attachments
test case (fairly large still) (2.31 KB, text/plain)
2006-04-24 17:15 UTC, Martin Michlmayr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Michlmayr 2006-04-24 17:14:24 UTC
This happens on powerpc, not on i386 or x86_86:

1084:tbm@test: ~/delta/bin] /usr/lib/gcc-snapshot/bin/g++ -c -O2 mini.c
mini.c: In member function 'BASE* alps::detail::creator<BASE, T>::create() const [with BASE = alps::BufferedRandomNumberGeneratorBase, T = alps::BufferedRandomNumberGenerator<boost::random::lagged_fibonacci_01<double, 48, 607u, 273u> >]':
mini.c:333: error: too many outgoing branch edges from bb 4
mini.c:333: internal compiler error: verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
zsh: exit 1     /usr/lib/gcc-snapshot/bin/g++ -c -O2 mini.c
1085:tbm@test: ~/delta/bin] /usr/lib/gcc-snapshot/bin/g++ -c mini.c
1086:tbm@test: ~/delta/bin] g++-4.1 -c -O2  mini.c
1087:tbm@test: ~/delta/bin]
Comment 1 Martin Michlmayr 2006-04-24 17:15:26 UTC
Created attachment 11329 [details]
test case (fairly large still)
Comment 2 Andrew Pinski 2006-04-24 23:48:51 UTC
I forgot if the error is a RTL issue or a tree level issue.
Comment 3 Andrew Pinski 2006-04-25 01:30:12 UTC
Confirmed, but very interesting.  It ICEs in RTL.
Comment 4 Andrew Pinski 2006-04-25 01:32:41 UTC
"-O2 -fno-branch-count-reg" works.
Comment 5 Zdenek Dvorak 2006-04-27 22:21:49 UTC
Patch:

http://gcc.gnu.org/ml/gcc-patches/2006-04/msg01058.html
Comment 6 Zdenek Dvorak 2006-05-01 20:46:26 UTC
Subject: Bug 27291

Author: rakdver
Date: Mon May  1 20:46:22 2006
New Revision: 113430

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113430
Log:
	PR rtl-optimization/27291
	* loop-doloop.c (add_test, doloop_modify): Handle the case condition is
	folded to a constant.

	* g++.dg/tree-ssa/pr27291.C: New test.


Added:
    trunk/gcc/testsuite/g++.dg/tree-ssa/pr27291.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/loop-doloop.c
    trunk/gcc/testsuite/ChangeLog

Comment 7 Andrew Pinski 2006-05-02 04:44:57 UTC
Fixed.
Comment 8 Steve Ellcey 2006-08-03 16:35:45 UTC
Subject: Bug 27291

Author: sje
Date: Thu Aug  3 16:35:31 2006
New Revision: 115904

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115904
Log:
	PR rtl-optimization/28221
	Backport from mainline.
	2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
	* loop-doloop.c (add_test): Only add jump note if we did emit a jump.
	2006-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
	PR rtl-optimization/27291
	* loop-doloop.c (add_test, doloop_modify): Handle the case condition
	is folded to a constant.

Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/loop-doloop.c