public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
@ 2012-11-10 14:08 zsojka at seznam dot cz
  2012-11-10 17:08 ` [Bug tree-optimization/55264] " mpolacek at gcc dot gnu.org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: zsojka at seznam dot cz @ 2012-11-10 14:08 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55264
           Summary: [4.6/4.7/4.8 Regression] ICE: in
                    ipa_make_edge_direct_to_target, at ipa-prop.c:2141
                    with -O2 -fno-early-inlining -fno-weak
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: zsojka@seznam.cz


Created attachment 28656
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28656
preprocessed source (g++.dg/tree-ssa/pr45453.C)

Compiler output:
$ gcc -O2 -fno-early-inlining -fno-weak pr45453.ii 
/mnt/svn/gcc-trunk/gcc/testsuite/g++.dg/tree-ssa/pr45453.C:16:1: internal
compiler error: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141
 }
 ^
0xa220d7 ipa_make_edge_direct_to_target(cgraph_edge*, tree_node*)
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2141
0xa29cec try_make_edge_direct_virtual_call
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2245
0xa29cec update_indirect_edges_after_inlining
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2316
0xa29cec propagate_info_to_inlined_callees
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2356
0xa29c2e propagate_info_to_inlined_callees
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2360
0xa29f08 ipa_propagate_indirect_call_infos(cgraph_edge*, vec_t<cgraph_edge*>**)
        /mnt/svn/gcc-trunk/gcc/ipa-prop.c:2386
0x12a7864 inline_call(cgraph_edge*, bool, vec_t<cgraph_edge*>**, int*, bool)
        /mnt/svn/gcc-trunk/gcc/ipa-inline-transform.c:259
0x12a6932 inline_small_functions
        /mnt/svn/gcc-trunk/gcc/ipa-inline.c:1609
0x12a6932 ipa_inline
        /mnt/svn/gcc-trunk/gcc/ipa-inline.c:1791
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Tested revisions:
r193387 - crash
4.7 r191640 - crash
4.6 r191640 - crash
4.5 r191640 - OK


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
@ 2012-11-10 17:08 ` mpolacek at gcc dot gnu.org
  2012-11-21 16:58 ` aldyh at gcc dot gnu.org
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2012-11-10 17:08 UTC (permalink / raw)
  To: gcc-bugs


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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-11-10
                 CC|                            |mpolacek at gcc dot gnu.org
   Target Milestone|---                         |4.8.0
     Ever Confirmed|0                           |1

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> 2012-11-10 17:07:57 UTC ---
With current trunk (r193391) I see a different ICE:

/mnt/svn/gcc-trunk/gcc/testsuite/g++.dg/tree-ssa/pr45453.C:16:1: internal
compiler error: in inline_call, at ipa-inline-transform.c:269
0xec0114 inline_call(cgraph_edge*, bool, vec_t<cgraph_edge*>**, int*, bool)
        /home/polacek/src/gcc/gcc/ipa-inline-transform.c:269
0xebefb8 inline_small_functions
        /home/polacek/src/gcc/gcc/ipa-inline.c:1553
0xebf492 ipa_inline
        /home/polacek/src/gcc/gcc/ipa-inline.c:1735
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
  2012-11-10 17:08 ` [Bug tree-optimization/55264] " mpolacek at gcc dot gnu.org
@ 2012-11-21 16:58 ` aldyh at gcc dot gnu.org
  2012-11-27 15:34 ` aldyh at gcc dot gnu.org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: aldyh at gcc dot gnu.org @ 2012-11-21 16:58 UTC (permalink / raw)
  To: gcc-bugs


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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org
         AssignedTo|unassigned at gcc dot       |aldyh at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #2 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2012-11-21 16:57:53 UTC ---
Mine.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
  2012-11-10 17:08 ` [Bug tree-optimization/55264] " mpolacek at gcc dot gnu.org
  2012-11-21 16:58 ` aldyh at gcc dot gnu.org
@ 2012-11-27 15:34 ` aldyh at gcc dot gnu.org
  2012-11-28 14:16 ` aldyh at gcc dot gnu.org
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: aldyh at gcc dot gnu.org @ 2012-11-27 15:34 UTC (permalink / raw)
  To: gcc-bugs


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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jason at gcc dot gnu.org

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2012-11-27 15:34:06 UTC ---
When compiled with -fno-weak, we re-use the out-of-line copy in
clone_inlined_nodes(), around here:

 /* We may eliminate the need for out-of-line copy to be output.
     In that case just go ahead and re-use it.  This is not just an
     memory optimization.  Making offline copy of fuction disappear
     from the program will improve future decisions on inlining.  */

This happens because the conditional can_remove_node_now_p_1() returns true for
virtuals that are not weak:

      /* Inlining might enable more devirtualizing, so we want to remove
         those only after all devirtualizable virtual calls are processed.
         Lacking may edges in callgraph we just preserve them post
         inlining.  */
      && (!DECL_VIRTUAL_P (node->symbol.decl)
          || (!DECL_COMDAT (node->symbol.decl)
          && !DECL_EXTERNAL (node->symbol.decl)))

When we re-use the out-of-line copy in clone_inlined_nodes(), we end up setting
inlined_to here:

    e->callee->global.inlined_to = e->caller;

This causes the ICE in ipa_make_edge_direct_to_target, because inlined_to is
non-NULL:

  /* We can not make edges to inline clones.  It is bug that someone removed
     the cgraph node too early.  */
  gcc_assert (!callee->global.inlined_to);

Any tips on how to proceed from here?


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2012-11-27 15:34 ` aldyh at gcc dot gnu.org
@ 2012-11-28 14:16 ` aldyh at gcc dot gnu.org
  2012-12-07  9:33 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: aldyh at gcc dot gnu.org @ 2012-11-28 14:16 UTC (permalink / raw)
  To: gcc-bugs


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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |mjambor at suse dot cz

--- Comment #4 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2012-11-28 14:15:59 UTC ---
Honza/Martin.  Would you mind taking a look at this, or at least provide some
guidance?

A similar ICE to this one starts appearing around rev@159507 for the provided
testcase:

    2010-05-17  Martin Jambor  <mjambor@suse.cz>

        * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
        otr_token and polymorphic.
        * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
        (cgraph_clone_edge): Copy the above fields.
        * tree.c (get_binfo_at_offset): New function.
        * tree.h (get_binfo_at_offset): Declare.
        * ipa-prop.h (enum jump_func_type): Added known_type jump function
...
...

There is also a set of related patches to ipa*/cgraph* around this time frame
by both of you.

Thanks.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2012-11-28 14:16 ` aldyh at gcc dot gnu.org
@ 2012-12-07  9:33 ` rguenth at gcc dot gnu.org
  2013-01-03 16:30 ` hubicka at gcc dot gnu.org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-07  9:33 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2012-12-07  9:33 ` rguenth at gcc dot gnu.org
@ 2013-01-03 16:30 ` hubicka at gcc dot gnu.org
  2013-01-08 18:17 ` jamborm at gcc dot gnu.org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-01-03 16:30 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> 2013-01-03 16:29:49 UTC ---
Martin, I guess this is "yours".  I have no idea here ;)


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2013-01-03 16:30 ` hubicka at gcc dot gnu.org
@ 2013-01-08 18:17 ` jamborm at gcc dot gnu.org
  2013-01-09 10:36 ` jamborm at gcc dot gnu.org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-08 18:17 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #6 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-08 18:16:24 UTC ---
Created attachment 29111
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29111
Untested fix

I'm currently bootstrapping and testing this patch to fix the issue on trunk.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2013-01-08 18:17 ` jamborm at gcc dot gnu.org
@ 2013-01-09 10:36 ` jamborm at gcc dot gnu.org
  2013-01-09 15:24 ` hubicka at ucw dot cz
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-09 10:36 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-09 10:36:02 UTC ---
Unfortunately, that causes the following failures:

g++.dg/lto/20081217-2 cp_lto_20081217-2_0.o-cp_lto_20081217-2_0.o link, -O2
-flto -flto-partition=none -fuse-linker-plugin -fno-fat-lto-objects  (internal
compiler error)
g++.dg/lto/20081217-2 cp_lto_20081217-2_0.o-cp_lto_20081217-2_0.o link, -O2
-flto -fuse-linker-plugin (internal compiler error)
g++.dg/torture/pr34099.C  -O2 -flto -fno-use-linker-plugin -flto-partition=none
 (internal compiler error)
g++.dg/torture/pr45934.C  -O2 -flto -fno-use-linker-plugin -flto-partition=none
 (internal compiler error)
g++.dg/torture/pr45934.C  -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects 
(internal compiler error)
g++.dg/torture/pr47382.C  -O2 -flto -fno-use-linker-plugin -flto-partition=none
 (internal compiler error)
g++.dg/torture/pr47382.C  -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects 
(internal compiler error)

Let me look into those...


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (7 preceding siblings ...)
  2013-01-09 10:36 ` jamborm at gcc dot gnu.org
@ 2013-01-09 15:24 ` hubicka at ucw dot cz
  2013-01-10 18:03 ` jamborm at gcc dot gnu.org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hubicka at ucw dot cz @ 2013-01-09 15:24 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> 2013-01-09 15:23:54 UTC ---
> Let me look into those...

Try the patch I attached to PR45375

Honza


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (8 preceding siblings ...)
  2013-01-09 15:24 ` hubicka at ucw dot cz
@ 2013-01-10 18:03 ` jamborm at gcc dot gnu.org
  2013-01-10 18:15 ` jamborm at gcc dot gnu.org
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-10 18:03 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #9 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-10 18:02:35 UTC ---
(In reply to comment #8)
> > Let me look into those...
> 
> Try the patch I attached to PR45375
> 

I have updated to revision 195082 which I understand already has it
and tried again but it did not help.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (9 preceding siblings ...)
  2013-01-10 18:03 ` jamborm at gcc dot gnu.org
@ 2013-01-10 18:15 ` jamborm at gcc dot gnu.org
  2013-01-17 11:43 ` jamborm at gcc dot gnu.org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-10 18:15 UTC (permalink / raw)
  To: gcc-bugs


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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jamborm at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #10 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-10 18:14:44 UTC ---
And no wonder it did not because those failures are ICEs in
ipcp_verify_propagated_values.  So that's mine.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (10 preceding siblings ...)
  2013-01-10 18:15 ` jamborm at gcc dot gnu.org
@ 2013-01-17 11:43 ` jamborm at gcc dot gnu.org
  2013-01-21 17:02 ` jamborm at gcc dot gnu.org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-17 11:43 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #11 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-17 11:43:18 UTC ---
Author: jamborm
Date: Thu Jan 17 11:43:14 2013
New Revision: 195262

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195262
Log:
2013-01-17  Martin Jambor  <mjambor@suse.cz>

    PR tree-optimizations/55264
    * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
    for virtual methods.
    * ipa.c (symtab_remove_unreachable_nodes): Never return true for
    virtual methods before inlining is over.
    * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
    virtual functions.
    * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
    non-virtual.

testsuite/
    * g++.dg/ipa/pr55264.C: New test.


Added:
    trunk/gcc/testsuite/g++.dg/ipa/pr55264.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphclones.c
    trunk/gcc/ipa-inline-transform.c
    trunk/gcc/ipa.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (11 preceding siblings ...)
  2013-01-17 11:43 ` jamborm at gcc dot gnu.org
@ 2013-01-21 17:02 ` jamborm at gcc dot gnu.org
  2013-01-21 17:10 ` jamborm at gcc dot gnu.org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-21 17:02 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #12 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-21 17:02:18 UTC ---
Author: jamborm
Date: Mon Jan 21 17:02:08 2013
New Revision: 195339

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195339
Log:
2013-01-21  Martin Jambor  <mjambor@suse.cz>

        PR tree-optimizations/55264
    * cgraph.c (cgraph_create_virtual_clone): Mark clones as non-virtual.
    * cgraph.h (cgraph_only_called_directly_p_or_aliased_p): Return false
    for virtual functions.
    * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
    for virtual methods.
    * ipa.c (cgraph_remove_unreachable_nodes): Never return true for
    virtual methods before inlining is over.

testsuite/
    * g++.dg/ipa/pr55264.C: New test.


Added:
    branches/gcc-4_7-branch/gcc/testsuite/g++.dg/ipa/pr55264.C
Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/cgraph.c
    branches/gcc-4_7-branch/gcc/cgraph.h
    branches/gcc-4_7-branch/gcc/ipa-inline-transform.c
    branches/gcc-4_7-branch/gcc/ipa.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (12 preceding siblings ...)
  2013-01-21 17:02 ` jamborm at gcc dot gnu.org
@ 2013-01-21 17:10 ` jamborm at gcc dot gnu.org
  2013-01-21 17:11 ` jamborm at gcc dot gnu.org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-21 17:10 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #13 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-21 17:09:27 UTC ---
Author: jamborm
Date: Mon Jan 21 17:09:22 2013
New Revision: 195340

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195340
Log:
2013-01-21  Martin Jambor  <mjambor@suse.cz>

        PR tree-optimizations/55264
    * cgraph.c (cgraph_create_virtual_clone): Mark clones as non-virtual.
    * cgraph.h (cgraph_only_called_directly_p): Return false for virtual
    functions.
    * ipa-inline.c (cgraph_clone_inlined_nodes): Do reuse nodes of any
    virtual function.
    * ipa.c (cgraph_remove_unreachable_nodes): Never return true for
    virtual methods before inlining is over.

testsuite/
    * g++.dg/ipa/pr55264.C: New test.


Added:
    branches/gcc-4_6-branch/gcc/testsuite/g++.dg/ipa/pr55264.C
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/cgraph.c
    branches/gcc-4_6-branch/gcc/cgraph.h
    branches/gcc-4_6-branch/gcc/ipa-inline.c
    branches/gcc-4_6-branch/gcc/ipa.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (13 preceding siblings ...)
  2013-01-21 17:10 ` jamborm at gcc dot gnu.org
@ 2013-01-21 17:11 ` jamborm at gcc dot gnu.org
  2013-02-19 22:52 ` matt at use dot net
  2013-02-20 13:37 ` jamborm at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-01-21 17:11 UTC (permalink / raw)
  To: gcc-bugs


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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                URL|                            |http://gcc.gnu.org/ml/gcc-p
                   |                            |atches/2013-01/msg00877.htm
                   |                            |l
         Resolution|                            |FIXED

--- Comment #14 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-01-21 17:11:24 UTC ---
Fixed with http://gcc.gnu.org/ml/gcc-patches/2013-01/msg00877.html
on trunk and with similar backports on active release branches.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (14 preceding siblings ...)
  2013-01-21 17:11 ` jamborm at gcc dot gnu.org
@ 2013-02-19 22:52 ` matt at use dot net
  2013-02-20 13:37 ` jamborm at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: matt at use dot net @ 2013-02-19 22:52 UTC (permalink / raw)
  To: gcc-bugs


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

Matt Hargett <matt at use dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |matt at use dot net

--- Comment #15 from Matt Hargett <matt at use dot net> 2013-02-19 22:51:57 UTC ---
Hey Martin,

I noticed that this doesn't apply cleanly to google/4_7 without some massaging.
The difference between trunk and google/4_7 might be worth pulling into trunk.
Unfortunately, the trail of merge commit log breadcrumbs leads to a dead end :/

>From a blame of google/main/gcc/ipa.c:

165972    hubicka           || (before_inlining_p
195116    davidxl               && DECL_VIRTUAL_P (node->symbol.decl)
195825    davidxl               && cgraph_is_aux_decl_external (node))))

it's that last line that's unique to the google branches, and should probably
be merged to trunk.


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

* [Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak
  2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
                   ` (15 preceding siblings ...)
  2013-02-19 22:52 ` matt at use dot net
@ 2013-02-20 13:37 ` jamborm at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu.org @ 2013-02-20 13:37 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #16 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-02-20 13:36:35 UTC ---
(In reply to comment #15)
> Hey Martin,
> 
> I noticed that this doesn't apply cleanly to google/4_7 without some massaging.
> The difference between trunk and google/4_7 might be worth pulling into trunk.
> Unfortunately, the trail of merge commit log breadcrumbs leads to a dead end :/
> 
> From a blame of google/main/gcc/ipa.c:
> 
> 165972    hubicka           || (before_inlining_p
> 195116    davidxl               && DECL_VIRTUAL_P (node->symbol.decl)
> 195825    davidxl               && cgraph_is_aux_decl_external (node))))
> 
> it's that last line that's unique to the google branches, and should probably
> be merged to trunk.

I may not understand what you ask for but if my quick research is
correct, cgraph_is_aux_decl_external is some LIPO stuff, not a
deficiency in mainline.


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

end of thread, other threads:[~2013-02-20 13:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-10 14:08 [Bug tree-optimization/55264] New: [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak zsojka at seznam dot cz
2012-11-10 17:08 ` [Bug tree-optimization/55264] " mpolacek at gcc dot gnu.org
2012-11-21 16:58 ` aldyh at gcc dot gnu.org
2012-11-27 15:34 ` aldyh at gcc dot gnu.org
2012-11-28 14:16 ` aldyh at gcc dot gnu.org
2012-12-07  9:33 ` rguenth at gcc dot gnu.org
2013-01-03 16:30 ` hubicka at gcc dot gnu.org
2013-01-08 18:17 ` jamborm at gcc dot gnu.org
2013-01-09 10:36 ` jamborm at gcc dot gnu.org
2013-01-09 15:24 ` hubicka at ucw dot cz
2013-01-10 18:03 ` jamborm at gcc dot gnu.org
2013-01-10 18:15 ` jamborm at gcc dot gnu.org
2013-01-17 11:43 ` jamborm at gcc dot gnu.org
2013-01-21 17:02 ` jamborm at gcc dot gnu.org
2013-01-21 17:10 ` jamborm at gcc dot gnu.org
2013-01-21 17:11 ` jamborm at gcc dot gnu.org
2013-02-19 22:52 ` matt at use dot net
2013-02-20 13:37 ` jamborm at gcc dot gnu.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).