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).