From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104061 invoked by alias); 13 May 2015 20:04:17 -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 104051 invoked by uid 89); 13 May 2015 20:04:16 -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_50,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 13 May 2015 20:04:13 +0000 Received: from svr-orw-fem-05.mgc.mentorg.com ([147.34.97.43]) by relay1.mentorg.com with esmtp id 1Yscsy-00031K-06 from Sandra_Loosemore@mentor.com ; Wed, 13 May 2015 13:04:08 -0700 Received: from [IPv6:::1] (147.34.91.1) by svr-orw-fem-05.mgc.mentorg.com (147.34.97.43) with Microsoft SMTP Server id 14.3.224.2; Wed, 13 May 2015 13:04:07 -0700 Message-ID: <5553ADF3.6000204@codesourcery.com> Date: Wed, 13 May 2015 20:12:00 -0000 From: Sandra Loosemore User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 MIME-Version: 1.0 To: Jan Hubicka CC: Subject: Re: Work around PR65873 References: <20150512221234.GA54352@kam.mff.cuni.cz> In-Reply-To: <20150512221234.GA54352@kam.mff.cuni.cz> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2015-05/txt/msg01269.txt.bz2 On 05/12/2015 04:12 PM, Jan Hubicka wrote: > > Hi, > this patch works around PR where we refuse to inline always_inline memcpy > into function with explicit Ofast optimization attribute. This is because > we think we can not promote -fno-fast-math code to -fast-math code. > This is of course safe for memcpy because it contains to fast-math code, > but we don't really do the analysis for each of the flags we check. > > Earlier compilers was happily producing wrong code here and it seems practical > to do that on GCC 5 to deal with common falout. I will implement the more > fine grained check incrementally. > > Bootstrapped/regtested x86_64-linux. Will commit it to mainline shortly and > to release branch later this week. > > PR ipa/65873 > * ipa-inline.c (can_inline_edge_p): Allow early inlining of always > inlines across optimization boundary. > * testsuite/gcc.c-torture/compile/pr65873.c: New testcase. > Index: ipa-inline.c > =================================================================== > --- ipa-inline.c (revision 223093) > +++ ipa-inline.c (working copy) > @@ -427,46 +427,55 @@ can_inline_edge_p (struct cgraph_edge *e > && lookup_attribute ("always_inline", > DECL_ATTRIBUTES (callee->decl))); > I'm having problems parsing the following comment block: > + /* Until GCC 4.9 we did not check the semantics alterning flags "alterning"? > + bellow and inline across optimization boundry. s/bellow/below/g s/boundry/boundary/ > + Enabling checks bellow breaks several packages by refusing > + to inline library always_inline functions. See PR65873. > + Disable the check for early inlining for now until better solution > + is found. */ > + if (always_inline && early) > + ; -Sandra