From patchwork Thu Apr 4 14:20:36 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Polacek X-Patchwork-Id: 233842 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 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 8B2EE2C009E for ; Fri, 5 Apr 2013 01:20:53 +1100 (EST) 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:cc:subject:message-id:references:mime-version :content-type:in-reply-to; q=dns; s=default; b=GWVqELqUl6t5PkXvM R5VaBxEmphR6GXquh86rVJhYvb6dDa7flZ4c2iA6LN5V/gnMUcHh0Nni+CC5I/Ib qXFcfoA8cSG+WAe9BX9ctOkQhMfvM9xZm4vmsQwbijinIFwS1UDO0vUo/VlxRo1K b9Fp45EmjELtdIsWybxXXSOkKg= 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:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=default; bh=dEinbR1dcvGpg5JSQABjzWL N+cE=; b=ZESMgyDvrhKFFjTOcPsvY9d0OJMZgRmHLQrvPXpfdvYrAyJ8L1csQTw 9lGRHxCUQ77thUfmXmntx6DTZAsKoGbfTlBgJymCtByD6m9rfncpndInItKjtgB/ SywNbqcTQsulmgjp0iUVFzgrBDJMJ9wvBeeC+j8Stj2HMUFmL3rM= Received: (qmail 18851 invoked by alias); 4 Apr 2013 14:20:44 -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 18842 invoked by uid 89); 4 Apr 2013 14:20:44 -0000 X-Spam-SWARE-Status: No, score=-7.7 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_DNSWL_HI, RCVD_IN_HOSTKARMA_W, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 04 Apr 2013 14:20:41 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r34EKeI6008851 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 4 Apr 2013 10:20:40 -0400 Received: from redhat.com (ovpn-116-29.ams2.redhat.com [10.36.116.29]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r34EKamM005176 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 4 Apr 2013 10:20:39 -0400 Date: Thu, 4 Apr 2013 16:20:36 +0200 From: Marek Polacek To: Jakub Jelinek Cc: GCC Patches Subject: Re: [PATCH] Fix PR48186 Message-ID: <20130404142036.GE24873@redhat.com> References: <20130404140048.GC24873@redhat.com> <20130404140635.GQ4201@tucnak.redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20130404140635.GQ4201@tucnak.redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) On Thu, Apr 04, 2013 at 04:06:35PM +0200, Jakub Jelinek wrote: > In this second hunk the division is done only for flag_guess_branch_prob, > so shouldn't it be > if (flag_guess_branch_prob) > { > if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0 > || edge->frequency <= (CGRAPH_FREQ_BASE > / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))) > return false; > } > return true; > instead? Yeah, I guess so. Thanks; fixed: 2013-04-04 Marek Polacek PR tree-optimization/48186 * predict.c (maybe_hot_frequency_p): Return false if HOT_BB_FREQUENCY_FRACTION is 0. (cgraph_maybe_hot_edge_p): Likewise. * gcc.dg/pr48186.c: New test. Marek --- gcc/predict.c.mp 2013-04-04 16:16:16.396977123 +0200 +++ gcc/predict.c 2013-04-04 16:16:21.857994025 +0200 @@ -122,6 +122,8 @@ maybe_hot_frequency_p (struct function * if (node->frequency == NODE_FREQUENCY_EXECUTED_ONCE && freq < (ENTRY_BLOCK_PTR_FOR_FUNCTION (fun)->frequency * 2 / 3)) return false; + if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0) + return false; if (freq < (ENTRY_BLOCK_PTR_FOR_FUNCTION (fun)->frequency / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))) return false; @@ -203,9 +205,12 @@ cgraph_maybe_hot_edge_p (struct cgraph_e && edge->frequency < CGRAPH_FREQ_BASE * 3 / 2) return false; if (flag_guess_branch_prob - && edge->frequency <= (CGRAPH_FREQ_BASE - / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))) - return false; + { + if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0 + || edge->frequency <= (CGRAPH_FREQ_BASE + / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))) + return false; + } return true; } --- gcc/testsuite/gcc.dg/pr48186.c.mp 2013-04-04 16:18:01.978310788 +0200 +++ gcc/testsuite/gcc.dg/pr48186.c 2013-04-04 16:12:25.510243745 +0200 @@ -0,0 +1,5 @@ +/* PR tree-optimization/48186 */ +/* { dg-do compile } */ +/* { dg-options "-O --param hot-bb-frequency-fraction=0" } */ + +void foo (void) { }