From patchwork Fri Apr 3 20:24:16 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 458030 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id D2F371400B7 for ; Sat, 4 Apr 2015 07:24:32 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass reason="1024-bit key; unprotected key" header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=GHD1spK8; dkim-adsp=none (unprotected policy); dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=GDjlr3SECNiH5x9DCa9LxY/Cce0g8PrWj6lfXmzFTSRrm18bRPG8L dryet1CTGlmhBK1haeGXD4BMhf0/tKHhJgAiCdoYtp7OzwsN5t/aFgGvIdItMQ6A Jjiw/Gvu/OXjpq+Vf05S3l5z+vnwACNdZrObhqHNrt+A8E+Fw/GYy4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; s= default; bh=1VOti7LQ548MXpRL47MF0BKTh+U=; b=GHD1spK8A9w5M0UIpVFd Z4VQvUAwdrQ0hEt7YfmeJ/GnEBlCzq5uq8ziV5AIUBsO8u0e5WkOJyGI3TlhXle5 nyxTfCWTJrHDIm2jD99ZrqsCSH3kKhQVQ0z1VQZlAtary6W7GJMOVnmo13b+QegO vhAtYqrDXybNhhoeVb5koiE= Received: (qmail 3971 invoked by alias); 3 Apr 2015 20:24:22 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 3952 invoked by uid 89); 3 Apr 2015 20:24:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: nikam.ms.mff.cuni.cz Received: from nikam.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 03 Apr 2015 20:24:19 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 6765F540944; Fri, 3 Apr 2015 22:24:16 +0200 (CEST) Date: Fri, 3 Apr 2015 22:24:16 +0200 From: Jan Hubicka To: gcc-patches@gcc.gnu.org Subject: Work around ICE in PR 65648 Message-ID: <20150403202416.GE37152@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Hi, the dealII compilation ICEs on check that verifies that projected size match the size after inlining. This check suffers from roundoff errors in corner cases and I believe it is what triggers here. Given that I have a reorg of this code to sreals scheduled for next stage1, I think we can just disable the sanity check in GCC 5. It is non-critical thoguh very useful to fix varoius bug that causes propagation to diverge. Will commit it shortly as obvious. PR ipa/65648 * ipa-inline-transform.c (inline_call): Skip sanity check to work around the ICE Index: ipa-inline-transform.c =================================================================== --- ipa-inline-transform.c (revision 221859) +++ ipa-inline-transform.c (working copy) @@ -304,7 +304,8 @@ inline_call (struct cgraph_edge *e, bool struct cgraph_node *callee = e->callee->ultimate_alias_target (); bool new_edges_found = false; -#ifdef ENABLE_CHECKING + /* This is used only for assert bellow. */ +#if 0 int estimated_growth = estimate_edge_growth (e); bool predicated = inline_edge_summary (e)->predicate != NULL; #endif @@ -375,7 +376,10 @@ inline_call (struct cgraph_edge *e, bool to->calls_comdat_local = false; } -#ifdef ENABLE_CHECKING + /* FIXME: This assert suffers from roundoff errors, disable it for GCC 5 + and revisit it after conversion to sreals in GCC 6. + See PR 65654. */ +#if 0 /* Verify that estimated growth match real growth. Allow off-by-one error due to INLINE_SIZE_SCALE roudoff errors. */ gcc_assert (!update_overall_summary || !overall_size || new_edges_found