public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593
@ 2014-11-24 17:30 trippels at gcc dot gnu.org
  2014-11-24 19:04 ` [Bug ipa/64059] " trippels at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-11-24 17:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64059

            Bug ID: 64059
           Summary: [5 Regression] ICE: Segmentation fault in
                    ipa-polymorphic-call.c:1593
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

Reduced from PR63671 comment 14:

markus@x4 ~ % cat tramp3d-v4.ii
class A;
class B
{
public:
  A *operator->();
};
class C
{
public:
  virtual void m_fn1 ();
};
class A
{
public:
  C *m_fn2 ();
};
class D
{
public:
  void
  m_fn3 ()
  {
    list_m->m_fn2 ()->m_fn1 ();
  }
  B list_m;
};

class F
{
public:
  D m_fn4 ();
};
class G
{
public:
  F m_fn5 (int, int);
};
class H
{
public:
  void
  m_fn6 ()
  {
    fieldEngine_m.m_fn5 (0, 0).m_fn4 ().m_fn3 ();
  }
  G fieldEngine_m;
};

void
fn1 (H a)
{
  a.m_fn6 ();
}

markus@x4 ~ % g++ -r -nostdlib -O2 -flto -fno-devirtualize tramp3d-v4.ii
tramp3d-v4.ii: In member function ‘D::m_fn3()’:
tramp3d-v4.ii:53:1: internal compiler error: Segmentation fault
 }
 ^
0xc7542f crash_signal
        ../../gcc/gcc/toplev.c:359
0xac92b8 tree_check
        ../../gcc/gcc/tree.h:2763
0xac92b8 ipa_polymorphic_call_context::get_dynamic_type(tree_node*, tree_node*,
tree_node*, gimple_statement_base*)
        ../../gcc/gcc/ipa-polymorphic-call.c:1593
0xae4c04 ipa_analyze_call_uses
        ../../gcc/gcc/ipa-prop.c:2173
0xae4c04 ipa_analyze_stmt_uses
        ../../gcc/gcc/ipa-prop.c:2192
0xae4c04 ipa_analyze_params_uses_in_bb
        ../../gcc/gcc/ipa-prop.c:2232
0xae4c04 analysis_dom_walker::before_dom_children(basic_block_def*)
        ../../gcc/gcc/ipa-prop.c:2316
0x12202d7 dom_walker::walk(basic_block_def*)
        ../../gcc/gcc/domwalk.c:188
0xaeb839 ipa_analyze_node(cgraph_node*)
        ../../gcc/gcc/ipa-prop.c:2373
0x125c77f ipcp_generate_summary
        ../../gcc/gcc/ipa-cp.c:4254
0xbba939 execute_ipa_summary_passes(ipa_opt_pass_d*)
        ../../gcc/gcc/passes.c:2137
0x8d39fe ipa_passes
        ../../gcc/gcc/cgraphunit.c:2074
0x8d39fe symbol_table::compile()
        ../../gcc/gcc/cgraphunit.c:2187
0x8d5177 symbol_table::finalize_compilation_unit()
        ../../gcc/gcc/cgraphunit.c:2340
0x6ac91b cp_write_global_declarations()
        ../../gcc/gcc/cp/decl2.c:4688
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
>From gcc-bugs-return-468409-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Nov 24 17:43:16 2014
Return-Path: <gcc-bugs-return-468409-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 14552 invoked by alias); 24 Nov 2014 17:43:15 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 14498 invoked by uid 48); 24 Nov 2014 17:43:07 -0000
From: "hjl.tools at gmail dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/64058] [5 Regression] Performance degradation after r216304
Date: Mon, 24 Nov 2014 17:43:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: tree-optimization
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: hjl.tools at gmail dot com
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cf_reconfirmed_on cc target_milestone short_desc everconfirmed
Message-ID: <bug-64058-4-DZMgjJCMiw@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-64058-4@http.gcc.gnu.org/bugzilla/>
References: <bug-64058-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-11/txt/msg02881.txt.bz2
Content-length: 676

https://gcc.gnu.org/bugzilla/show_bug.cgi?idd058

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-11-24
                 CC|                            |rguenth at gcc dot gnu.org
   Target Milestone|---                         |5.0
            Summary|Performance degradation     |[5 Regression] Performance
                   |after r216304               |degradation after r216304
     Ever confirmed|0                           |1


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

* [Bug ipa/64059] [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593
  2014-11-24 17:30 [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593 trippels at gcc dot gnu.org
@ 2014-11-24 19:04 ` trippels at gcc dot gnu.org
  2014-11-25  2:40 ` hubicka at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-11-24 19:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64059

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Breakpoint 1, ipa_polymorphic_call_context::get_dynamic_type
(this=0x7fffffffdb90, instance=0x7ffff7271678, otr_object=0x7ffff7271678,
otr_type=0x7ffff73dd1f8, 
    call=0x7ffff73e4ab0) at ../../gcc/gcc/ipa-polymorphic-call.c:1593
1593          = get_deref_alias_set (TREE_TYPE (BINFO_VTABLE (TYPE_BINFO
(otr_type))));
(gdb) l
1588      /* We look for vtbl pointer read.  */
1589      ao.size = POINTER_SIZE;
1590      ao.max_size = ao.size;
1591      if (otr_type)
1592        ao.ref_alias_set
1593          = get_deref_alias_set (TREE_TYPE (BINFO_VTABLE (TYPE_BINFO
(otr_type))));
1594
1595      if (dump_file)
1596        {
1597          fprintf (dump_file, "Determining dynamic type for call: ");
(gdb) p otr_type->type_non_common.binfo
$1 = (tree) 0x0


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

* [Bug ipa/64059] [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593
  2014-11-24 17:30 [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593 trippels at gcc dot gnu.org
  2014-11-24 19:04 ` [Bug ipa/64059] " trippels at gcc dot gnu.org
@ 2014-11-25  2:40 ` hubicka at gcc dot gnu.org
  2014-11-25  7:52 ` trippels at gcc dot gnu.org
  2014-11-25  9:20 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-11-25  2:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64059

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The patch I sent to original PR log works on the testcase:
Index: ../../gcc/ipa-prop.c
===================================================================
--- ../../gcc/ipa-prop.c        (revision 217980)
+++ ../../gcc/ipa-prop.c        (working copy)
@@ -2155,7 +2155,7 @@ ipa_analyze_call_uses (struct func_body_
   if (cs && !cs->indirect_unknown_callee)
     return;

-  if (cs->indirect_info->polymorphic)
+  if (cs->indirect_info->polymorphic && flag_devirtualize)
     {
       tree instance;
       tree target = gimple_call_fn (call);

The thing is that get_dynamic_type should be never called when devirt is
disabled.


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

* [Bug ipa/64059] [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593
  2014-11-24 17:30 [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593 trippels at gcc dot gnu.org
  2014-11-24 19:04 ` [Bug ipa/64059] " trippels at gcc dot gnu.org
  2014-11-25  2:40 ` hubicka at gcc dot gnu.org
@ 2014-11-25  7:52 ` trippels at gcc dot gnu.org
  2014-11-25  9:20 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-11-25  7:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64059

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

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

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Fixed.


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

* [Bug ipa/64059] [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593
  2014-11-24 17:30 [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593 trippels at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2014-11-25  7:52 ` trippels at gcc dot gnu.org
@ 2014-11-25  9:20 ` rguenth at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-25  9:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64059

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |5.0


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

end of thread, other threads:[~2014-11-25  9:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-24 17:30 [Bug ipa/64059] New: [5 Regression] ICE: Segmentation fault in ipa-polymorphic-call.c:1593 trippels at gcc dot gnu.org
2014-11-24 19:04 ` [Bug ipa/64059] " trippels at gcc dot gnu.org
2014-11-25  2:40 ` hubicka at gcc dot gnu.org
2014-11-25  7:52 ` trippels at gcc dot gnu.org
2014-11-25  9:20 ` rguenth 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).