This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PR ipa/59831 (ipa-cp devirt issues)
- From: Paolo Carlini <paolo dot carlini at oracle dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Markus Trippelsdorf <markus at trippelsdorf dot de>, gcc-patches at gcc dot gnu dot org, mjambor at suse dot cz
- Date: Tue, 04 Feb 2014 14:16:59 +0100
- Subject: Re: PR ipa/59831 (ipa-cp devirt issues)
- Authentication-results: sourceware.org; auth=none
- References: <20140131062254 dot GA28026 at kam dot mff dot cuni dot cz> <20140131145843 dot GA401 at x4> <20140131204830 dot GA10247 at kam dot mff dot cuni dot cz> <20140131220415 dot GA32621 at kam dot mff dot cuni dot cz> <20140202162955 dot GA24961 at kam dot mff dot cuni dot cz> <20140202235249 dot GA24897 at kam dot mff dot cuni dot cz> <20140203202938 dot GA26386 at kam dot mff dot cuni dot cz> <20140204054358 dot GA26201 at kam dot mff dot cuni dot cz>
Hi,
On 02/04/2014 06:43 AM, Jan Hubicka wrote:
Hi,
this patch solves the actual ICE in PR59831 by using ipa-devirt instead of
gimple_extract_devirt_binfo_from_cst as discussed in the first post.
Honza
PR ipa/59831
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
to figure out targets of polymorphic calls with known decl.
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
* ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
* ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
(get_polymorphic_call_info): ... here.
(get_polymorphic_call_info_from_invariant): New function.
* g++.dg/ipa/devirt-22.C: New testcase.
Today I'm seeing regressions in the libstdc++-v3 testsuite in the form
of ICEs exactly in ipa_get_indirect_edge_target_1:
FAIL: 27_io/basic_stringbuf/sputbackc/char/9425.cc (test for excess errors)
WARNING: 27_io/basic_stringbuf/sputbackc/char/9425.cc compilation failed
to produce executable
FAIL: 27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc (test for excess
errors)
WARNING: 27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc compilation
failed to produce executable
FAIL: 27_io/basic_stringbuf/str/char/2.cc (test for excess errors)
WARNING: 27_io/basic_stringbuf/str/char/2.cc compilation failed to
produce executable
FAIL: 27_io/basic_stringbuf/str/wchar_t/2.cc (test for excess errors)
WARNING: 27_io/basic_stringbuf/str/wchar_t/2.cc compilation failed to
produce executable
Can you please have a look?
Thanks,
Paolo.