public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
@ 2010-08-30 19:02 zsojka at seznam dot cz
2010-08-30 19:07 ` [Bug tree-optimization/45453] " zsojka at seznam dot cz
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: zsojka at seznam dot cz @ 2010-08-30 19:02 UTC (permalink / raw)
To: gcc-bugs
Command line:
$ gcc -O2 -fno-early-inlining testcase.C
Compiler output:
$ /mnt/svn/gcc-trunk/binary-163636-lto-fortran-checking-yes-rtl-df/bin/gcc -O2
-fno-early-inlining testcase.C
testcase.C:14:1: error: inlined_to pointer set for noninline callers
testcase.C:14:1: error: multiple inline callers
virtual void S::foo()/0(0) @0x7f8cb444b158 (asm: _ZN1S3fooEv) (inline copy in
void B()/1) availability:available analyzed 13 time, 12 benefit 4 size, 3
benefit reachable body finalized inlinable
called by: virtual void S::foo()/0 (1.00 per call) (indirect_inlining) (can
throw external) void B()/1 (1.00 per call) (inlined) (can throw external)
calls: virtual void S::foo()/0 (indirect_inlining) (1.00 per call) (can throw
external)
References:
Refering this function:
testcase.C:14:1: internal compiler error: verify_cgraph_node failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Tested revisions:
r163636 - crash
r161170 - crash
r159696 - crash
r158969 - OK
4.5 r160526 - OK
--
Summary: [4.6 Regression] ICE: verify_cgraph_node failed:
inlined_to pointer set for noninline callers with -O2 -
fno-early-inlining
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zsojka at seznam dot cz
GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
@ 2010-08-30 19:07 ` zsojka at seznam dot cz
2010-08-31 9:56 ` rguenth at gcc dot gnu dot org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: zsojka at seznam dot cz @ 2010-08-30 19:07 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from zsojka at seznam dot cz 2010-08-30 19:07 -------
Created an attachment (id=21595)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21595&action=view)
reduced testcase (from g++.dg/opt/pr20991.C)
$ gcc -O2 -fno-early-inlining pr45453.C
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
2010-08-30 19:07 ` [Bug tree-optimization/45453] " zsojka at seznam dot cz
@ 2010-08-31 9:56 ` rguenth at gcc dot gnu dot org
2010-09-02 11:26 ` rguenth at gcc dot gnu dot org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-08-31 9:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from rguenth at gcc dot gnu dot org 2010-08-31 09:56 -------
Confirmed.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2010-08-31 09:56:10
date| |
Target Milestone|--- |4.6.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
2010-08-30 19:07 ` [Bug tree-optimization/45453] " zsojka at seznam dot cz
2010-08-31 9:56 ` rguenth at gcc dot gnu dot org
@ 2010-09-02 11:26 ` rguenth at gcc dot gnu dot org
2010-09-16 17:37 ` hubicka at gcc dot gnu dot org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-09-02 11:26 UTC (permalink / raw)
To: gcc-bugs
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-checking, ice-on-valid-
| |code
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
` (2 preceding siblings ...)
2010-09-02 11:26 ` rguenth at gcc dot gnu dot org
@ 2010-09-16 17:37 ` hubicka at gcc dot gnu dot org
2010-09-17 1:09 ` hubicka at gcc dot gnu dot org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-16 17:37 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from hubicka at gcc dot gnu dot org 2010-09-16 17:36 -------
Hmm, the problem is that foo is virtual self recursive function.
We inline it and then indirect inlining decide that it can devirtualize the
self recursive call since it knows the operand has proper type.
At that time we already removed the function from callgraph since all direct
calls was resolved, it is COMDAT and corresponding vtable is elsehwere.
We have options:
1) Prevent devirtualization in this case
2) Special case COMDAT virtual functions in inliner and prevent them from
being removed early
3) Make inliner to re-invent nodes for those functions.
All solutions are sort of wrong. I am leaning towards 2) with extra code
keeping virtual COMDAT till inlining stage (similarly as we do with extern
inlines) so possible indirect calls can be resolved.
Will give this a try.
Proper solution here is probably introduction of may edges...
Martin: Can we devirtualize the recursive call always based on fact that we go
to the function so it got to be of proper type?
Honza
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
` (3 preceding siblings ...)
2010-09-16 17:37 ` hubicka at gcc dot gnu dot org
@ 2010-09-17 1:09 ` hubicka at gcc dot gnu dot org
2010-09-18 23:13 ` hubicka at gcc dot gnu dot org
2010-09-18 23:14 ` hubicka at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-17 1:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from hubicka at gcc dot gnu dot org 2010-09-17 01:09 -------
patch posted.
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |hubicka at gcc dot gnu dot
|dot org |org
Status|NEW |ASSIGNED
Last reconfirmed|2010-08-31 09:56:10 |2010-09-17 01:09:17
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
` (4 preceding siblings ...)
2010-09-17 1:09 ` hubicka at gcc dot gnu dot org
@ 2010-09-18 23:13 ` hubicka at gcc dot gnu dot org
2010-09-18 23:14 ` hubicka at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-18 23:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from hubicka at gcc dot gnu dot org 2010-09-18 23:13 -------
Subject: Bug 45453
Author: hubicka
Date: Sat Sep 18 23:13:17 2010
New Revision: 164405
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164405
Log:
PR tree-optimization/45453
* cgraphunit.c (cgraph_finalize_function): Consider comdat & external
virtual functions are reachable.
* ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
* ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
when modifying function.
* g++.dg/tree-ssa/pr45453.C: New testcase.
Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/pr45453.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraphunit.c
trunk/gcc/ipa-inline.c
trunk/gcc/ipa-prop.c
trunk/gcc/ipa.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/45453] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
` (5 preceding siblings ...)
2010-09-18 23:13 ` hubicka at gcc dot gnu dot org
@ 2010-09-18 23:14 ` hubicka at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-18 23:14 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from hubicka at gcc dot gnu dot org 2010-09-18 23:13 -------
Fixed.
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45453
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-09-18 23:14 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-30 19:02 [Bug tree-optimization/45453] New: [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer set for noninline callers with -O2 -fno-early-inlining zsojka at seznam dot cz
2010-08-30 19:07 ` [Bug tree-optimization/45453] " zsojka at seznam dot cz
2010-08-31 9:56 ` rguenth at gcc dot gnu dot org
2010-09-02 11:26 ` rguenth at gcc dot gnu dot org
2010-09-16 17:37 ` hubicka at gcc dot gnu dot org
2010-09-17 1:09 ` hubicka at gcc dot gnu dot org
2010-09-18 23:13 ` hubicka at gcc dot gnu dot org
2010-09-18 23:14 ` hubicka at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).