From patchwork Thu Apr 4 14:00:48 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Polacek X-Patchwork-Id: 233830 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 281782C009C for ; Fri, 5 Apr 2013 01:01:13 +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:subject:message-id:mime-version:content-type; q=dns; s= default; b=uFXwa6YJnKJwILYXzPuXbKVDRjEZ8wI+xSjpQWk+VObA9Nyk+1Ncd UOCMnTuz0OFURNQnyP9FLVJ7waMbVqJXCpgj1nSzDAvsVxQaT25RN1l8bt8KjWQj ncgx6Yx1y5PTe1hBChwWmkWZVBcn1zAWCrfyC8X+AXg6hFtC+y0m7Y= 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=mOWFNRjBiNY7H0QDWurosGSBNSM=; b=tVh3N1HAmqbob5aTK9Sa 0P5p8fwV9WPyVz49P7GUiiZAwSp5FdcZUJL7dWWc6dARn6yr1/J5ehxJ7JPu6jI+ 2WgIOve7EghXY8vkXdHikuweszH6x2ih8p1LeaSBpso6dU2rQENEt7zd9jTxwswt eGj4wLuPD6VF5QTecLL2eRE= Received: (qmail 27095 invoked by alias); 4 Apr 2013 14:01:02 -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 27080 invoked by uid 89); 4 Apr 2013 14:01:01 -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:00:59 +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 r34E0qnX021536 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 4 Apr 2013 10:00:57 -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 r34E0mYD026815 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Thu, 4 Apr 2013 10:00:51 -0400 Date: Thu, 4 Apr 2013 16:00:48 +0200 From: Marek Polacek To: GCC Patches Subject: [PATCH] Fix PR48186 Message-ID: <20130404140048.GC24873@redhat.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Another case where we got a SIGFPE if HOT_BB_FREQUENCY_FRACTION is 0 - in that case we divide by zero. Regtested/bootstrapped on x86_64-linux, ok for trunk/4.8? 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 15:04:29.925685185 +0200 +++ gcc/predict.c 2013-04-04 15:04:33.123696281 +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; @@ -202,6 +204,8 @@ cgraph_maybe_hot_edge_p (struct cgraph_e if (edge->caller->frequency == NODE_FREQUENCY_EXECUTED_ONCE && edge->frequency < CGRAPH_FREQ_BASE * 3 / 2) return false; + if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0) + return false; if (flag_guess_branch_prob && edge->frequency <= (CGRAPH_FREQ_BASE / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))) --- gcc/testsuite/gcc.dg/pr48186.c.mp 2013-04-04 15:04:20.775652932 +0200 +++ gcc/testsuite/gcc.dg/pr48186.c 2013-04-04 14:58:08.038050087 +0200 @@ -0,0 +1,5 @@ +/* PR tree-optimization/48186 */ +/* { dg-do compile } */ +/* { dg-options "-O --param hot-bb-frequency-fraction=0" } */ + +void foo (void) { }