From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 105943 invoked by alias); 7 Apr 2015 20:25:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 105930 invoked by uid 89); 7 Apr 2015 20:25:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2 X-HELO: mx2.suse.de Received: from cantor2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Tue, 07 Apr 2015 20:25:34 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 8B57EABA2 for ; Tue, 7 Apr 2015 20:25:31 +0000 (UTC) Message-ID: <55243D3A.6010607@suse.cz> Date: Tue, 07 Apr 2015 20:25:00 -0000 From: =?windows-1252?Q?Martin_Li=9Aka?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Fix PR ipa/65665 References: <551E532A.20809@suse.cz> <20150403171913.GR21276@atrey.karlin.mff.cuni.cz> In-Reply-To: <20150403171913.GR21276@atrey.karlin.mff.cuni.cz> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg00281.txt.bz2 On 04/03/2015 07:19 PM, Jan Hubicka wrote: >> Hello. >> >> Following patch fixes a new issue, ICE has disappeared on aarch64-linux machine and I was able to boostrap on >> the machine. Moreover, no new regression seen on x86_64-linux-pc. >> >> Ready for trunk? >> Thanks, >> Martin > >> >From b8463b8a7b2f6b652d6d9c3a2ece814ec5554619 Mon Sep 17 00:00:00 2001 >> From: mliska >> Date: Fri, 3 Apr 2015 09:30:50 +0200 >> Subject: [PATCH] Fix PR ipa/65665 >> >> gcc/ChangeLog: >> >> 2015-04-03 Martin Liska >> >> PR ipa/65665 >> * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP >> has computed data structure. >> (sem_item_optimizer::update_hash_by_addr_refs): Likewise. > > OK, > we should clean this up next stage1 ideally making passmanager to do the ipa-prop > analysis and making them trigger for all ipa passes consuming them > (ipa-icf/ipa-cp/inliner). Currently the way they are initialized either by inliner > or ipa-cp is quite ugly. Hi. Agree with you, this problem shows how closely are individual passes connected and how hard is it to split a pass to LGEN, WPA and LTRANS phase :) Martin > > Honza >> --- >> gcc/ipa-icf.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c >> index 8626730..8f8a0cf 100644 >> --- a/gcc/ipa-icf.c >> +++ b/gcc/ipa-icf.c >> @@ -535,7 +535,8 @@ sem_function::equals_wpa (sem_item *item, >> && (TREE_CODE (TREE_TYPE (decl)) == METHOD_TYPE >> || TREE_CODE (TREE_TYPE (item->decl)) == METHOD_TYPE) >> && (ipa_node_params_sum == NULL >> - || ipa_is_param_used (IPA_NODE_REF (dyn_cast (node)), >> + || IPA_NODE_REF (get_node ())->descriptors.is_empty () >> + || ipa_is_param_used (IPA_NODE_REF (get_node ()), >> 0)) >> && compare_polymorphic_p ()) >> { >> @@ -2501,14 +2502,15 @@ sem_item_optimizer::update_hash_by_addr_refs () >> m_items[i]->update_hash_by_addr_refs (m_symtab_node_map); >> if (m_items[i]->type == FUNC) >> { >> + cgraph_node *cnode = dyn_cast (m_items[i]->node); >> + >> if (TREE_CODE (TREE_TYPE (m_items[i]->decl)) == METHOD_TYPE >> && contains_polymorphic_type_p >> (method_class_type (TREE_TYPE (m_items[i]->decl))) >> && (DECL_CXX_CONSTRUCTOR_P (m_items[i]->decl) >> || ((ipa_node_params_sum == NULL >> - || ipa_is_param_used ( >> - IPA_NODE_REF >> - (dyn_cast (m_items[i]->node)), 0)) >> + || IPA_NODE_REF (cnode)->descriptors.is_empty () >> + || ipa_is_param_used (IPA_NODE_REF (cnode), 0)) >> && static_cast (m_items[i]) >> ->compare_polymorphic_p ()))) >> { >> -- >> 2.1.4 >> >