public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3
@ 2014-01-15 16:55 dcb314 at hotmail dot com
  2014-01-15 20:20 ` [Bug ipa/59831] " trippels at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: dcb314 at hotmail dot com @ 2014-01-15 16:55 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 59831
           Summary: ice in cgraph_speculative_call_info with -O3
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com

Created attachment 31845
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31845&action=edit
gzipped C++ source code

I just compiled the attached code with gcc trunk 20140115 on a x86_64
box with flag -O3 and it said

In file included from StringA.h:32:0,
                 from file.h:33,
                 from file.C:33:
VarArray.h: In function ‘T& VarArray<T>::operator[](int) [with T = string]’:
VarArray.h:123:8: internal compiler error: in cgraph_speculative_call_info, at
cgraph.c:1197
0x82cdfb cgraph_speculative_call_info(cgraph_edge*, cgraph_edge*&,
cgraph_edge*&, ipa_ref*&)
    ../../src/trunk/gcc/cgraph.c:1197
0x82cf5f cgraph_resolve_speculation(cgraph_edge*, tree_node*)
    ../../src/trunk/gcc/cgraph.c:1224
0x831030 cgraph_make_edge_direct(cgraph_edge*, cgraph_node*)
    ../../src/trunk/gcc/cgraph.c:1286
0x83123f cgraph_set_call_stmt(cgraph_edge*, gimple_statement_base*, bool)
    ../../src/trunk/gcc/cgraph.c:825
0x831281 cgraph_set_call_stmt(cgraph_edge*, gimple_statement_base*, bool)
    ../../src/trunk/gcc/cgraph.c:802

This looks different to bug # 58477 to me.
>From gcc-bugs-return-440464-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Jan 15 17:01:47 2014
Return-Path: <gcc-bugs-return-440464-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 5510 invoked by alias); 15 Jan 2014 17:01:47 -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 5404 invoked by uid 48); 15 Jan 2014 17:01:40 -0000
From: "fdumont at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/59712] unordered_map : clang fails with "member access into incomplete type"
Date: Wed, 15 Jan 2014 17:01:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: libstdc++
X-Bugzilla-Version: unknown
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: fdumont at gcc dot gnu.org
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: fdumont at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status resolution
Message-ID: <bug-59712-4-ehV0ik2OIU@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-59712-4@http.gcc.gnu.org/bugzilla/>
References: <bug-59712-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-01/txt/msg01606.txt.bz2
Content-length: 528

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

François Dumont <fdumont at gcc dot gnu.org> changed:

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

--- Comment #6 from François Dumont <fdumont at gcc dot gnu.org> ---
We now assert the method on the type exposing it which is completely defined at
this moment.
>From gcc-bugs-return-440465-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Jan 15 17:09:15 2014
Return-Path: <gcc-bugs-return-440465-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 13229 invoked by alias); 15 Jan 2014 17:09: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 13188 invoked by uid 55); 15 Jan 2014 17:09:12 -0000
From: "hjl at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes
Date: Wed, 15 Jan 2014 17:09:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 4.7.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: hjl at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.7.4
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-59794-4-DipXdv463C@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-59794-4@http.gcc.gnu.org/bugzilla/>
References: <bug-59794-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-01/txt/msg01607.txt.bz2
Content-length: 1735

http://gcc.gnu.org/bugzilla/show_bug.cgi?idY794

--- Comment #10 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Wed Jan 15 17:08:38 2014
New Revision: 206634

URL: http://gcc.gnu.org/viewcvs?rev 6634&root=gcc&view=rev
Log:
Silence vector ABI change warnings for x86

    PR target/59794
    * c-c++-common/convert-vec-1.c: Also prune ABI change for
    Linux/x86.
    * g++.dg/cpp0x/constexpr-53094-2.C: Likewise.
    * g++.dg/ext/attribute-test-1.C: Likewise.
    * g++.dg/ext/attribute-test-2.C: Likewise.
    * g++.dg/ext/attribute-test-3.C: Likewise.
    * g++.dg/ext/attribute-test-4.C: Likewise.
    * g++.dg/ext/pr56790-1.C: Likewise.
    * g++.dg/torture/pr38565.C: Likewise.
    * gcc.dg/pr53060.c: Likewise.
    * c-c++-common/scal-to-vec2.c: Add -msse2 for x86.
    * c-c++-common/vector-compare-2.c: Likewise.
    * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Likewise.
    * g++.dg/conversion/simd1.C: Add -msse2 for x86.  Adjust
    dg-message line number.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/convert-vec-1.c
    trunk/gcc/testsuite/c-c++-common/scal-to-vec2.c
    trunk/gcc/testsuite/c-c++-common/vector-compare-2.c
    trunk/gcc/testsuite/g++.dg/conversion/simd1.C
    trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C
    trunk/gcc/testsuite/g++.dg/ext/attribute-test-1.C
    trunk/gcc/testsuite/g++.dg/ext/attribute-test-2.C
    trunk/gcc/testsuite/g++.dg/ext/attribute-test-3.C
    trunk/gcc/testsuite/g++.dg/ext/attribute-test-4.C
    trunk/gcc/testsuite/g++.dg/ext/pr56790-1.C
    trunk/gcc/testsuite/g++.dg/torture/pr38565.C
    trunk/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c
    trunk/gcc/testsuite/gcc.dg/pr53060.c


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

* [Bug ipa/59831] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
@ 2014-01-15 20:20 ` trippels at gcc dot gnu.org
  2014-01-16 14:26 ` [Bug ipa/59831] [4.9 Regression] " rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 20:20 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-01-15
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |trippels at gcc dot gnu.org
          Component|c                           |ipa
   Target Milestone|---                         |4.9.0
     Ever confirmed|0                           |1

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Confirmed.

markus@x4 /tmp % cat test.ii
class A {};
class B {
public:
  A &operator[](int);
};
class C : B {
public:
  virtual int m_fn1() { return 0; }
  A &operator[](int p1) {
    int a;
    a = m_fn1();
    static_cast<void>(__builtin_expect(a, 0) ?: 0);
    return B::operator[](p1);
  }
};

C b;
int *e;
static void sort(C &p1, C &p2) {
  for (int i=0;; i++) {
    A c, d = p2[0];
    p1[0] = c;
    p2[0] = d;
  }
}

void lookupSourceDone() { b[0]; }

void update_sources() {
  if (e) {
    C f;
    sort(f, b);
  }
}

markus@x4 /tmp % g++ -c -O3 test.ii
test.ii: In function ‘A& C::operator[].constprop()’:
test.ii:9:6: internal compiler error: in cgraph_speculative_call_info, at
cgraph.c:1197
   A &operator[](int p1) {
      ^
Please submit a full bug report,
>From gcc-bugs-return-440480-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Jan 15 20:37:51 2014
Return-Path: <gcc-bugs-return-440480-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 16043 invoked by alias); 15 Jan 2014 20:37:51 -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 15957 invoked by uid 48); 15 Jan 2014 20:37:47 -0000
From: "jason at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/59659] large zero-initialized std::array compile time excessive
Date: Wed, 15 Jan 2014 20:37:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.8.2
X-Bugzilla-Keywords: compile-time-hog, memory-hog, missed-optimization
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jason at gcc dot gnu.org
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jason at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status resolution target_milestone
Message-ID: <bug-59659-4-NzzGzUWT7A@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-59659-4@http.gcc.gnu.org/bugzilla/>
References: <bug-59659-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-01/txt/msg01622.txt.bz2
Content-length: 485

http://gcc.gnu.org/bugzilla/show_bug.cgi?idY659

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |4.9.0

--- Comment #10 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 4.9.


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
  2014-01-15 20:20 ` [Bug ipa/59831] " trippels at gcc dot gnu.org
@ 2014-01-16 14:26 ` rguenth at gcc dot gnu.org
  2014-01-16 18:28 ` hubicka at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-16 14:26 UTC (permalink / raw)
  To: gcc-bugs

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

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

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


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
  2014-01-15 20:20 ` [Bug ipa/59831] " trippels at gcc dot gnu.org
  2014-01-16 14:26 ` [Bug ipa/59831] [4.9 Regression] " rguenth at gcc dot gnu.org
@ 2014-01-16 18:28 ` hubicka at gcc dot gnu.org
  2014-01-16 20:00 ` hubicka at gcc dot gnu.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-01-16 18:28 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |hubicka at gcc dot gnu.org

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Here inliner turns virtual call to direct call while versioning. This
devirtualization is missed by ipa-cp, but anticipated by ipa-devirt's
speculative code.  The ICE happens since inliner is done with copying edges but
not with references while it attempts to resolve the indirect call.
I am looking into fix.


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
                   ` (2 preceding siblings ...)
  2014-01-16 18:28 ` hubicka at gcc dot gnu.org
@ 2014-01-16 20:00 ` hubicka at gcc dot gnu.org
  2014-01-30 23:37 ` hubicka at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-01-16 20:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Easy fix is the following:
Index: cgraph.c
===================================================================
--- cgraph.c    (revision 206617)
+++ cgraph.c    (working copy)
@@ -815,6 +815,7 @@ cgraph_set_call_stmt (struct cgraph_edge

   e->call_stmt = new_stmt;
   if (e->indirect_unknown_callee
+      && !e->speculative
       && (decl = gimple_call_fndecl (new_stmt)))
     {
       /* Constant propagation (and possibly also inlining?) can turn an

I am however not entirely happy about it.  The devirtualization happens while
saving function body for inlining, so it is obviously a missed optimization
here: I assume that we never fold the call pre-IPA.

Also we should resolve speculation here, for that we however need to copy the
associated references...


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
                   ` (3 preceding siblings ...)
  2014-01-16 20:00 ` hubicka at gcc dot gnu.org
@ 2014-01-30 23:37 ` hubicka at gcc dot gnu.org
  2014-02-03 20:42 ` hubicka at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-01-30 23:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Created attachment 31996
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31996&action=edit
Proposed fix

OK, here we have
A& C::operator[](int) (struct C * const this, int p1)
{        
  int (*__vtbl_ptr_type) () * _3;
  int (*__vtbl_ptr_type) () _4;
  struct A & _8;

  <bb 2>:
  _3 = this_2(D)->_vptr.C;
  _4 = *_3;
  OBJ_TYPE_REF(_4;(struct C)this_2(D)->0) (this_2(D));
  _8 = B::operator[] (this_2(D), p1_6(D)); 
  return _8;

}

that is devirtualizable in the context of:

void sort(C&, C&) (struct C & p1, struct C & p2)
{
  <bb 2>:

  <bb 3>:
  C::operator[] (p2_3(D), 0);
  C::operator[] (p1_5(D), 0);
  C::operator[] (p2_3(D), 0);

  <bb 4>:
  goto <bb 3>;

}

used exclusively from:

void sort(C&, C&) (struct C & p1, struct C & p2)
{
  <bb 2>:

  <bb 3>:
  C::operator[] (p2_3(D), 0);
  C::operator[] (p1_5(D), 0);
  C::operator[] (p2_3(D), 0);

  <bb 4>:
  goto <bb 3>;

}

ipa-cp does:

Evaluating opportunities for void sort(C&, C&)/10.
 - Creating a specialized node of void sort(C&, C&)/10 for all known contexts.
    replacing param #1 p2 with const &b
                Accounting size:2.00, time:0.00 on new predicate:(not inlined)
     the new node is void sort.constprop(C&)/30.
     Aggregate replacements: 0[0]=&MEM[(void *)&_ZTV1C + 16B]

Evaluating opportunities for void sort(C&, C&)/10.
  Marking node as dead: void sort(C&, C&)/10.

Evaluating opportunities for A& C::operator[](int)/1.
 - considering value &b for param #0 this (caller_count: 3)
     good_cloning_opportunity_p (time: 1, size: 17, freq_sum: 201000) ->
evaluation: 11823, threshold: 500
  Creating a specialized node of A& C::operator[](int)/1.
    adding an extra known scalar value 0 for param #1 p1
    replacing param #0 this with const &b
    replacing param #1 p1 with const 0
                Accounting size:1.00, time:1.00 on predicate:(true)
                Accounting size:3.00, time:2.00 on new predicate:(not inlined)
                Accounting size:0.50, time:0.50 on new predicate:(op0[ref
offset: 0] changed) && (not inlined)
                Accounting size:0.50, time:0.50 on new predicate:(op0[ref
offset: 0] changed)
     the new node is A& C::operator[].constprop()/31.

Evaluating opportunities for A& C::operator[](int)/1.

Evaluating opportunities for virtual int C::m_fn1()/0.
 - considering value &b for param #0 this (caller_count: 1)
     good_cloning_opportunity_p (time: 2, size: 3, freq_sum: 800) ->
evaluation: 533, threshold: 500
  Creating a specialized node of virtual int C::m_fn1()/0.
    replacing param #0 this with const &b
                Accounting size:3.00, time:2.00 on new predicate:(not inlined)
     the new node is int C::m_fn1.constprop()/32.

Evaluating opportunities for virtual int C::m_fn1()/0.

For some reason it gets right the aggregate value, but misses the
devirtualization.

devirtualization_time_bonus properly anticipates the devirtualization to
happen.

The problem is that later we replace BINFO by a constant.  This is going throug
gimple_extract_binfo_from_cst that is known to be buggy.

This patch removes it and uses equivalent functionality of ipa-devirt.


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
                   ` (4 preceding siblings ...)
  2014-01-30 23:37 ` hubicka at gcc dot gnu.org
@ 2014-02-03 20:42 ` hubicka at gcc dot gnu.org
  2014-02-04  5:53 ` hubicka at gcc dot gnu.org
  2014-02-04  5:54 ` hubicka at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-02-03 20:42 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Mon Feb  3 20:41:30 2014
New Revision: 207439

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

    PR ipa/59831
    * g++.dg/ipa/devirt-24.C: New testcase.

    * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on -fno-devirtualize;
    Try to devirtualize by the knowledge of virtual table pointer given by
    aggregate propagation.
    * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
    ipa_print_node_jump_functions): Dump also offset that
    is relevant for polymorphic calls.
    (determine_known_aggregate_parts): Add arg_type parameter; use it
    instead of determining the type from pointer type.
    (ipa_compute_jump_functions_for_edge): Update call of
    determine_known_aggregate_parts.
    * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
    (gimple_get_virt_method_for_binfo): ... here; simplify using
    vtable_pointer_value_to_vtable.
    * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
    * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
    to unsigned HOST_WIDE_INT; Use vtable_pointer_value_to_vtable.
    (vtable_pointer_value_to_vtable): Break out from ...; handle also
    POINTER_PLUS_EXPR.
    (vtable_pointer_value_to_binfo): ... here.
    * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.

Added:
    trunk/gcc/testsuite/g++.dg/ipa/devirt-24.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimple-fold.c
    trunk/gcc/gimple-fold.h
    trunk/gcc/ipa-cp.c
    trunk/gcc/ipa-devirt.c
    trunk/gcc/ipa-prop.c
    trunk/gcc/ipa-utils.h
    trunk/gcc/testsuite/ChangeLog


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
                   ` (5 preceding siblings ...)
  2014-02-03 20:42 ` hubicka at gcc dot gnu.org
@ 2014-02-04  5:53 ` hubicka at gcc dot gnu.org
  2014-02-04  5:54 ` hubicka at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-02-04  5:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Hopefully fixed now.


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

* [Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
  2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
                   ` (6 preceding siblings ...)
  2014-02-04  5:53 ` hubicka at gcc dot gnu.org
@ 2014-02-04  5:54 ` hubicka at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-02-04  5:54 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I meant to change the status ;)


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

end of thread, other threads:[~2014-02-04  5:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-15 16:55 [Bug c/59831] New: ice in cgraph_speculative_call_info with -O3 dcb314 at hotmail dot com
2014-01-15 20:20 ` [Bug ipa/59831] " trippels at gcc dot gnu.org
2014-01-16 14:26 ` [Bug ipa/59831] [4.9 Regression] " rguenth at gcc dot gnu.org
2014-01-16 18:28 ` hubicka at gcc dot gnu.org
2014-01-16 20:00 ` hubicka at gcc dot gnu.org
2014-01-30 23:37 ` hubicka at gcc dot gnu.org
2014-02-03 20:42 ` hubicka at gcc dot gnu.org
2014-02-04  5:53 ` hubicka at gcc dot gnu.org
2014-02-04  5:54 ` hubicka 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).