public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
       [not found] <bug-45621-4@http.gcc.gnu.org/bugzilla/>
@ 2010-09-29 17:12 ` rguenth at gcc dot gnu.org
  2010-10-14 19:00 ` hubicka at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2010-09-29 17:12 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1

--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-09-29 15:29:31 UTC ---
Any update?


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
       [not found] <bug-45621-4@http.gcc.gnu.org/bugzilla/>
  2010-09-29 17:12 ` [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto rguenth at gcc dot gnu.org
@ 2010-10-14 19:00 ` hubicka at gcc dot gnu.org
  2010-10-15  1:21 ` hubicka at gcc dot gnu.org
  2010-10-15  1:24 ` hubicka at gcc dot gnu.org
  3 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-10-14 19:00 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621

--- Comment #6 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-10-14 18:59:58 UTC ---
The testing went fine, I just wanted to give more tought if some cheaper self
testing can be made instead of keeping clone info and then forgot about the
patch.
Will re-test and commit.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
       [not found] <bug-45621-4@http.gcc.gnu.org/bugzilla/>
  2010-09-29 17:12 ` [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto rguenth at gcc dot gnu.org
  2010-10-14 19:00 ` hubicka at gcc dot gnu.org
@ 2010-10-15  1:21 ` hubicka at gcc dot gnu.org
  2010-10-15  1:24 ` hubicka at gcc dot gnu.org
  3 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-10-15  1:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621

--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-10-15 01:20:59 UTC ---
Author: hubicka
Date: Fri Oct 15 01:20:55 2010
New Revision: 165492

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165492
Log:

    PR middle-end/45621
    * g++.dg/lto/pr45621.h : New.
    * g++.dg/lto/pr45621_0.C: New.
    * g++.dg/lto/pr45621_1.C: New.
    * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
    redirected to clone, be happy.
    * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
    * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
    former_clone_of unconditinally.

Added:
    trunk/gcc/testsuite/g++.dg/lto/pr45621.h
    trunk/gcc/testsuite/g++.dg/lto/pr45621_0.C
    trunk/gcc/testsuite/g++.dg/lto/pr45621_1.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
       [not found] <bug-45621-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2010-10-15  1:21 ` hubicka at gcc dot gnu.org
@ 2010-10-15  1:24 ` hubicka at gcc dot gnu.org
  3 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-10-15  1:24 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-10-15 01:24:04 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
  2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2010-09-17  1:08 ` hubicka at gcc dot gnu dot org
@ 2010-09-17 12:17 ` hubicka at gcc dot gnu dot org
  4 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-17 12:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from hubicka at gcc dot gnu dot org  2010-09-17 12:17 -------
Created an attachment (id=21818)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21818&action=view)
proposed patch


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
  2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2010-09-17  1:06 ` hubicka at gcc dot gnu dot org
@ 2010-09-17  1:08 ` hubicka at gcc dot gnu dot org
  2010-09-17 12:17 ` hubicka at gcc dot gnu dot org
  4 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-17  1:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from hubicka at gcc dot gnu dot org  2010-09-17 01:07 -------
testing patch.


-- 

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|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-09-17 01:07:45
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
  2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
  2010-09-09 19:36 ` [Bug rtl-optimization/45621] " zsojka at seznam dot cz
  2010-09-10  9:38 ` rguenth at gcc dot gnu dot org
@ 2010-09-17  1:06 ` hubicka at gcc dot gnu dot org
  2010-09-17  1:08 ` hubicka at gcc dot gnu dot org
  2010-09-17 12:17 ` hubicka at gcc dot gnu dot org
  4 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-09-17  1:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from hubicka at gcc dot gnu dot org  2010-09-17 01:05 -------
OK, problem is that we both devirtualize and clone the destination function.
Then when producing clone, we run into:
cgraph_update_edges_for_call_stmt_node (struct cgraph_node *node,
                                        gimple old_stmt, tree old_call, gimple
new_stmt)
{
  tree new_call = (is_gimple_call (new_stmt)) ? gimple_call_fndecl (new_stmt) :
0;

  /* We are seeing indirect calls, then there is nothing to update.  */
  if (!new_call && !old_call)
    return;
  /* See if we turned indirect call into direct call or folded call to one
builtin
     into different bultin.  */
  if (old_call != new_call)
    { 
      struct cgraph_edge *e = cgraph_edge (node, old_stmt);
      struct cgraph_edge *ne = NULL;
      gcov_type count;
      int frequency;
      int loop_nest;

      if (e)
        { 
          /* See if the edge is already there and has the correct callee.  It
             might be so because of indirect inlining has already updated
             it.  */
          if (new_call && e->callee && e->callee->decl == new_call)
            return;

          /* Otherwise remove edge and create new one; we can't simply redirect
             since function has changed, so inline plan and other information
             attached to edge is invalid.  */

and kill the inline plan.  This code is intended to handle bulitins, I guess
we will need to look out if the decl can be redirected to decl in the function.

Honza


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
  2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
  2010-09-09 19:36 ` [Bug rtl-optimization/45621] " zsojka at seznam dot cz
@ 2010-09-10  9:38 ` rguenth at gcc dot gnu dot org
  2010-09-17  1:06 ` hubicka at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-09-10  9:38 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu dot
                   |                            |org, jamborm at gcc dot gnu
                   |                            |dot org
   Target Milestone|---                         |4.6.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto
  2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
@ 2010-09-09 19:36 ` zsojka at seznam dot cz
  2010-09-10  9:38 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: zsojka at seznam dot cz @ 2010-09-09 19:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from zsojka at seznam dot cz  2010-09-09 19:35 -------
Created an attachment (id=21757)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21757&action=view)
archive with reduced testcase

$ g++ -O2 -fipa-cp-clone -flto -nostdlib -r file1.cpp file2.cpp

----- file1.cpp -----
#include "header.h"

void
foo ()
{
  s.v1 ();
  s.m ();
}
---------------------
----- file2.cpp -----
#include "header.h"

void
S::v1 ()
{
  v2 ();
}

void
S::m ()
{
  v1 ();
}
---------------------
----- header.h -----
struct S
{
  void m ();
  virtual void v1 ();
  virtual void v2 ();
};

extern S s;
--------------------

I pressed "Commit" too early, so there is the rest:
Tested revisions:
r164077 - crash
r164096 - crash
r161659 - OK


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45621


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-10-15  1:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-45621-4@http.gcc.gnu.org/bugzilla/>
2010-09-29 17:12 ` [Bug rtl-optimization/45621] [4.6 Regression] ICE: verify_cgraph_node failed: inlined_to pointer is set but no predecessors found with -fipa-cp-clone -flto rguenth at gcc dot gnu.org
2010-10-14 19:00 ` hubicka at gcc dot gnu.org
2010-10-15  1:21 ` hubicka at gcc dot gnu.org
2010-10-15  1:24 ` hubicka at gcc dot gnu.org
2010-09-09 19:31 [Bug rtl-optimization/45621] New: " zsojka at seznam dot cz
2010-09-09 19:36 ` [Bug rtl-optimization/45621] " zsojka at seznam dot cz
2010-09-10  9:38 ` rguenth at gcc dot gnu dot org
2010-09-17  1:06 ` hubicka at gcc dot gnu dot org
2010-09-17  1:08 ` hubicka at gcc dot gnu dot org
2010-09-17 12:17 ` 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).