From patchwork Thu Jun 2 16:53:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Greenhalgh X-Patchwork-Id: 69198 Delivered-To: patch@linaro.org Received: by 10.140.106.246 with SMTP id e109csp217533qgf; Thu, 2 Jun 2016 09:56:33 -0700 (PDT) X-Received: by 10.66.25.133 with SMTP id c5mr6747100pag.103.1464886593112; Thu, 02 Jun 2016 09:56:33 -0700 (PDT) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id fa5si22441704pab.13.2016.06.02.09.56.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Jun 2016 09:56:33 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-428928-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-428928-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-428928-patch=linaro.org@gcc.gnu.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; q=dns; s=default; b=g9NREfxGO3GUMZWG qYxd8GJscQu0LoeZulCi/+2GFDN7Dpf9cgG53a07Unda8vHLpY6i2NpJtxKZ6Xcf 1erOBkHwnGeLbG9XhO606l3+seNv58eX65MCJfcSOdCK1obYtLVmrq0FBp6UZmd+ 2epJ/q5O6j3EMmL6W4erOBHF10E= 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:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=default; bh=bqvOWh1TaJ4kvoRweo7e85 gsH5Q=; b=F6DrnIqc46ibuXgT1MCUdZ11rJRZALRkRXMvgamFwy/OWhsn85RUsi e6BKJoSIIOUdHwpaa5cioo6xgqOVRulHpM5NPnoD+K7z0XRcq3mvxoHNUYQJZR2q 635wh+AVXEOZyIIwwjhX5x16CzxiWFbHmAIchYv/1Y8hwYLuoB+aU= Received: (qmail 28236 invoked by alias); 2 Jun 2016 16:56:19 -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 28197 invoked by uid 89); 2 Jun 2016 16:56:17 -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, SPF_PASS autolearn=unavailable version=3.3.2 spammy= X-HELO: eu-smtp-delivery-143.mimecast.com Received: from eu-smtp-delivery-143.mimecast.com (HELO eu-smtp-delivery-143.mimecast.com) (207.82.80.143) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 02 Jun 2016 16:56:07 +0000 Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1lrp0015.outbound.protection.outlook.com [213.199.154.15]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-53-sz4EUgc4TrOfrTmjELdXjw-1; Thu, 02 Jun 2016 17:54:25 +0100 Received: from AM3PR08CA0008.eurprd08.prod.outlook.com (10.160.207.146) by HE1PR08MB0393.eurprd08.prod.outlook.com (10.161.116.156) with Microsoft SMTP Server (TLS) id 15.1.506.9; Thu, 2 Jun 2016 16:54:21 +0000 Received: from DB3FFO11FD044.protection.gbl (2a01:111:f400:7e04::103) by AM3PR08CA0008.outlook.office365.com (2a01:111:e400:8840::18) with Microsoft SMTP Server (TLS) id 15.1.506.9 via Frontend Transport; Thu, 2 Jun 2016 16:54:21 +0000 Received: from nebula.arm.com (217.140.96.140) by DB3FFO11FD044.mail.protection.outlook.com (10.47.217.75) with Microsoft SMTP Server (TLS) id 15.1.497.8 via Frontend Transport; Thu, 2 Jun 2016 16:54:20 +0000 Received: from e107456-lin.cambridge.arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Thu, 2 Jun 2016 17:54:19 +0100 From: James Greenhalgh To: CC: , , , , , Subject: [RFC: Patch 3/6] Remove if_info->branch_cost Date: Thu, 2 Jun 2016 17:53:55 +0100 Message-ID: <1464886438-17892-4-git-send-email-james.greenhalgh@arm.com> In-Reply-To: <1464886438-17892-1-git-send-email-james.greenhalgh@arm.com> References: <5617A4DE.6020004@redhat.com> <1464886438-17892-1-git-send-email-james.greenhalgh@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(438002)(377424004)(199003)(189002)(11100500001)(76176999)(50986999)(92566002)(4610100001)(50226002)(2950100001)(8676002)(5890100001)(5000100001)(19580395003)(19580405001)(77096005)(86362001)(2351001)(5008740100001)(8936002)(568964002)(6806005)(84326002)(229853001)(106466001)(87936001)(104016004)(2906002)(33646002)(512874002)(4326007)(5003600100002)(36756003)(2476003)(189998001)(586003)(110136002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR08MB0393; H:nebula.arm.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD044; 1:q6YHTcqlGzPphADJxGh+dvLLV1eU5DGbYDFYbpy9eLAexVfJfGpnPGr3LsyYDqd4t4Oa1oRzrhcX3I+zMB+GTWo23RAGawdNEOXkcyWUdKBDZ61VCG6GlCE9/UJSYc8Rxw5kT8kd2p09BeH6lM2CZr4GjudQdd9ckY2FD93yvcbMrtqic+ZbghBdaRZrISSyt26z7lfDCjj7ur3mZ3aysEahrHHCN4+BLOn2/AjF8jpwtA7negI90CQUAStksU71JfMTgrcAZqh7HUorQPpXR4CROBJQaOVSWCCbL4kek7POEaVRGpgrFqbgLPzgNGjLoj6uvZkosn44hknozj8kmQxZPHWdsOrFQd+v+8hO+m4RRZAgF9VO1f7HW+IOqKiyfvDUWDT5FRI4zY6ZqNYAgZ/Du485Zo7ypcU7G30o7yHrDahGvJjP7AamJuC7DkOX+1eP7knA8sDbjJZWNTQxmywhUQ+6V73H/o714qH2OjFM6G0XQE5TFfNGnoUlfmLyqx0M6iGtB22j4N/O/bdJF5SHiNc1+OY5m2XT8iP6/Y9AP9VRhsqpJpE39oCvtA6H X-MS-Office365-Filtering-Correlation-Id: 8acb295e-1319-4004-a958-08d38b068b27 X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0393; 2:rPcoXx7NMnmxwwiZb/pBSFYN9dQAgabje/tspiJtVPfkVCIs/Vp0yfOhTY5+ZVuePPIx7FdtnPcDNoxnCiX8thvQKC7uxXpk4+DBhsPGwlpEzokI2718nk2NFUJf6oHyYAAlAQcQDFtqwFBWxeeYLRDKMGCKnaTTY7VNevPRCiyisqdTJyk0h6vn3ILxcCYh; 3:YrG2ONeeOBUAq/gFdxoSIexf2EHrSzMMMv63Y2nnw+X5D4OOJqhOH2KhzSqsRGjlb/WmVr2tHQB9AikWUpH8EM7SAkhrvUQ/LiDd/UdhVmVaoyYG0AZQ1xT5yx/1jfmD++QdQLNqpvpr/OS8HPoqwuUJfKX2FOEa8m9asXEa8OQyPpue30PD087zM1pYoeX551CkMDCyLX1LoX5reynpzLUlwzPYW9ztwPkv4pxJrqK6omjRsjxiLKqO2wE/EeOWIzRyrT54sXWuLo9t0tRtAg== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:HE1PR08MB0393; X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0393; 25:1RvF+MT1E5C/PxIHI6BKg5abYW2PWEZGoJnDXyBcA9ksj0sPryQYgzKdAbiXz3Pcs1dH7yCHM6FET6r6bqG8MjNNjb8Gk9jlvzVtjs2UYmpq+uCvEs9ywxtIe/gZxR/wbIufHVHAvDIelrcq5h+Cvguvru0B9tdfEd9E+4Vc4Oahpa/RbcJOJ/enEvw/Ji28DEaWv5k9CCJ31jxyieJXqm242uo/bcBB3t8NiB5VIwIqNLcBOUZgZtNB9FhgvS23g6lL2JflaIugNjuhlfaWtCoHDH5HfLpQdl3TMev1Wt9HYeEDCwdrY2bsxkK7wiupARxy0IfDryAN47vMH9O/3olTy/ay9m1IYvTUeuPGYtaG2RnlLT5SvGop7Ti8YBLVUyM7fvXPXg8AKopD6gTHtCCWaAEsJebIpECGBqhmUW0rlTlJryIm34pKGdzFAjX54lOT/qmqJ0UO9KTQEWvyIglhZJG+1rDFzQeiGAIoLD/megpXNxhwpFRzdyzKAKRQ; 20:D00kagjOKjFAC8psdkDTWis08MgrLKTl3M3XGH4tj3wQY4sgfpfHiU45kYlkRj3Rm0G6jboxgaxFRQGxf4NTtWP7HMe4aOjM688H3NfOJ6tnbEGwz4rKBKz36Z12e0CJnK1TtSx+YBTD2bF+nvRGJQCPRPK4VNhayU1d6sImr3deBxC3REZyXWNF6g9sFjvW1i4kmVUzqC1iGiYmV9BiCXSa5/7Bsxa+rwG0ddxsCHQroJdUPRhs3uiOByKJgKT5 NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415321)(601004)(2401047)(8121501046)(13013025)(5005006)(13023025)(13024025)(13020025)(10201501046)(3002001)(6055026); SRVR:HE1PR08MB0393; BCL:0; PCL:0; RULEID:; SRVR:HE1PR08MB0393; X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0393; 4:zS7xeLek8/SbU18UCg3/ahU9yC9Cs1SU0M9TIzpUYEfDXwjJRyreh2HcAh7KpbG+AbCCEnku16+D8xDcyk2brrNW4IxSMs2IMFtFgjijzXr69MAX4s9w7de4vU+xtS+IXRN49AWGC9WTPRNQpwzVqeHXN52HDJf08OkIPLCD06qlDLgRvIER+VU72jlvFxBC1hEtKYwvcwZhu7ZKYfr3EANBcAfSPmo9XaclMIES7TXsGKKqDDrnP7Z3W5zZ3iBcp8OjcC2t1l3IFOxdwVrVPkAXSEO2yhNfrPfylxxln09D0r9m7VVn0xMaL9oWHqFogShyrbsDviGgfHsZv/KdK70wTgjS1weGAqopVLK4tEsvtNEbSryIXyHf2NO15+wBGDSW5xMdjO/UG0U3jMliBWLWR1GeLhA4J1NcnXBvYwEhHd555IarZpN2+bHh0zE3ukF9iikGfpLgNfhY6bBYSTGWhuhCD29SS65m5ZwlsG+wNkqCR7qHCB9y1Pl1oJpVnau2DwV8ZnX/hefalbxWzQ== X-Forefront-PRVS: 0961DF5286 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR08MB0393; 23:JxVEcdipL8TKZLaIZ7nzjUDSBLqIQP9XbBSYIyvpi?= =?us-ascii?Q?bvq6PEyxyBYrNmM3gljtCWUV3jGbX8WxXBveP3aIFkWYbw3CE9B1jIQw5FJY?= =?us-ascii?Q?ofCPv/e4k2RrGLBfwWhdYbSJXtZ3MfjmwawnhF5OVe9D1k4psdDMqr3qZ1Im?= =?us-ascii?Q?16pb9PyYbJQiJBTT5Re/7yeTJWg/Xlf4BwIr0VrsGhzZGy1T3ITRPLYaDmWx?= =?us-ascii?Q?Dcv80A4ISAiruWaXQLs68d1O2qCH44zkG2F9nfa8Ko2dLAMMS9+Wz0l2e191?= =?us-ascii?Q?AyLqv2PqBPLo6+vCcoMRO+cccSbXinOk5LjGJUFFq9GQgC7FAbLM0zO9XWoK?= =?us-ascii?Q?0hF/tRfIBpRmG0MihoAo3XeOgEM/ucFZesBsUvFqtyFGs+P+62nzF2eeWox2?= =?us-ascii?Q?ecDkXj6a84vlDpYJPQdd6+CxzoiUhaRpIw+kQhOCWkds67oR4EmMZxBHEfrF?= =?us-ascii?Q?44JJKGpXHc4BB7whlRgz8om5KDRbbnA+QllpaZ3gMsAy1Iecq9vRv86HmogW?= =?us-ascii?Q?/1LZnxXk6BkAxIYS41wnAdIu7BYMh0c4zJbODOD2uQW11e/zkM/hH2F7ebMH?= =?us-ascii?Q?KlCRCwls6y/sGlyhCq9nhbOk6oeAGGJ/JgH+8nqHo4EukJjeSFjngMJdtSop?= =?us-ascii?Q?vk2lqFSz2Ije24M7LkXwaig8J/W/7GEils/0n3p//jzDivmmU8Gw/YamD1qZ?= =?us-ascii?Q?HJDZfUz6e6VWq07B9cVlca9lQ11HAz059q4KK8YATeL1ITz0ofbq+ii9sFZu?= =?us-ascii?Q?jD4Lqacw03DB4mjnAE58bLzbv5+YmHko0oDkCwUnfDc6DVYrjT9RhDH6EN5k?= =?us-ascii?Q?Y+jBtQKIjKjog05aMzZNfoAYOX1Y8k4DUkb4AsEHzBr2n8Fe9NXkU4uxhEBd?= =?us-ascii?Q?OTuN1/j69+DTYnxgiv77oTq1ygMYa2xd8FBLyyWOyRtnRk3MRWysZPuFCDlW?= =?us-ascii?Q?1NwSOd3pgOUrKayk28FwmpXlj43Cm7ptt3qmlwvyPX0CI8cJo+iz4lJECQvV?= =?us-ascii?Q?HcQDR6hm/YIFpqr2g2ki1TmS43BLCt6AHz7a6/jCHODUGmfbfUIh4wok0Ylo?= =?us-ascii?Q?vKYlBU=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0393; 5:8BoPM9t/RQCPQ8xQFq2G3R9y3fTJp354XBMIzkAHY6PFmOYtFFN/Axv4VwwmKUf/7lf3vToUb5V9l/YjxIBa7d30T6duvIC+jeL5hAgR6t+6wov3Rb7VenaxCC4sCqNCJhULgbgWaO7OfziYIVbbuQ==; 24:7BI+EaU1hHROMXwmz+TEWt0t86pPLcnAaGWSOWcPBHpdl70G1h+P/nZuSymFY+asytt8r9Nm+7x1eVbH+YjzwSqjhbCy5Jn8C5k3nUVlawo=; 7:0ei2rsUZ+VLBVz3y3LguD/U2vVVb4qy85e6fqqHK5kecm3evYUNYCn9HW6RhGSM8DQNIeeyyLuXTNYIU6x+P7d9KGGtNeLheGf3i/LNCLGPGabVsfep1TZdp/J4k8sE0vX/ZDGa5uaqcZlnHPkr/YwIrgeiTsS7t2qNe0EHzPMBkeZHWQJCCrwfGPg+vuW1E; 20:5LRg7Sv07yjBB6WkVgsyMCD1yR7dKr1Sqln02H4V0bbbnNV0cG4EHnMANTrr9rn/WZ5OiK2SYR9Ox6Mzexzdm6QmcrcXSr/9Z8NG1wyeoMzYA+SmJlIICqyQSKZQRx98kXu8G/qd2HSLGvh6sfiNJUtu2svuMMVFMIlZ5D1+qIY= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2016 16:54:20.7572 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB0393 X-MC-Unique: sz4EUgc4TrOfrTmjELdXjw-1 X-IsSubscribed: yes Hi, This patch removes what is left of branch_cost uses, moving them to use the new hook and tagging each left over spot with a TODO to revisit them. All these uses are in rtx costs units, so we don't have more work to do at this point. OK? Thanks, James --- 2016-06-02 James Greenhalgh * ifcvt.c (noce_if_info): Remove branch_cost. (noce_try_store_flag_mask): Use rtx_edge_cost rather than branch_cost, tag as a TODO.. (noce_try_cmove_arith): Likewise. (noce_convert_multiple_sets): Likewise. (bb_ok_for_noce_convert_multiple_sets): Likewise. (noce_find_if_block): Remove set of branch_cost. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 22cb5e7..b192c85 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -812,7 +812,6 @@ struct noce_if_info unsigned int else_cost; /* Estimated cost of the particular branch instruction. */ - unsigned int branch_cost; unsigned int rtx_edge_cost; }; @@ -1634,7 +1633,8 @@ noce_try_store_flag_mask (struct noce_if_info *if_info) speed_p = optimize_bb_for_speed_p (BLOCK_FOR_INSN (if_info->insn_a)); insn_cost = insn_rtx_cost (PATTERN (if_info->insn_a), speed_p); - old_cost = COSTS_N_INSNS (if_info->branch_cost) + insn_cost; + /* TODO: Revisit this cost model. */ + old_cost = if_info->rtx_edge_cost + insn_cost; new_cost = seq_cost (seq, speed_p); if (new_cost > old_cost) @@ -2105,7 +2105,9 @@ noce_try_cmove_arith (struct noce_if_info *if_info) /* We're going to execute one of the basic blocks anyway, so bail out if the most expensive of the two blocks is unacceptable. */ - if (MAX (then_cost, else_cost) > COSTS_N_INSNS (if_info->branch_cost)) + + /* TODO: Revisit cost model. */ + if (MAX (then_cost, else_cost) > if_info->rtx_edge_cost) return FALSE; /* Possibly rearrange operands to make things come out more natural. */ @@ -3280,8 +3282,8 @@ noce_convert_multiple_sets (struct noce_if_info *if_info) of conditional moves. FORNOW: Use II to find the expected cost of the branch into/over TEST_BB. - TODO: This creates an implicit "magic number" for branch_cost. - II->branch_cost now guides the maximum number of set instructions in + TODO: This creates an implicit "magic number" for if conversion. + II->rtx_edge_cost now guides the maximum number of set instructions in a basic block which is considered profitable to completely if-convert. */ @@ -3292,7 +3294,8 @@ bb_ok_for_noce_convert_multiple_sets (basic_block test_bb, rtx_insn *insn; unsigned count = 0; unsigned param = PARAM_VALUE (PARAM_MAX_RTL_IF_CONVERSION_INSNS); - unsigned limit = MIN (ii->branch_cost, param); + /* TODO: Revisit this cost model. */ + unsigned limit = MIN (ii->rtx_edge_cost / COSTS_N_INSNS (1), param); FOR_BB_INSNS (test_bb, insn) { @@ -3993,8 +3996,6 @@ noce_find_if_block (basic_block test_bb, edge then_edge, edge else_edge, if_info.cond_earliest = cond_earliest; if_info.jump = jump; if_info.then_else_reversed = then_else_reversed; - if_info.branch_cost = BRANCH_COST (optimize_bb_for_speed_p (test_bb), - predictable_edge_p (then_edge)); if_info.rtx_edge_cost = targetm.rtx_branch_cost (optimize_bb_for_speed_p (test_bb), predictable_edge_p (then_edge));