From patchwork Mon Nov 12 19:14:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Muellner X-Patchwork-Id: 996631 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-489784-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=theobroma-systems.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="G44mRma5"; dkim-atps=neutral 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 42v0q868rtz9s1x for ; Tue, 13 Nov 2018 06:16:20 +1100 (AEDT) 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; q=dns; s=default; b=Vrotw3WpMkhh rMV+e47WZnyvML0lBGAnGfhAYXM7lQWDJqNCW1sE168S5w+7Oxw8MeGK1trSv71a KOR2mGXkbh2DiH+hKyfzSDe3fjWbCIISFI1GD18vxHlVq0gs0KYp0H5a3L9KGDrA +kKu4SVTO+yZtxOfPZIhu+OknL6i5As= 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; s=default; bh=K8+MwpaeJszSjttQSD vOkkYShVg=; b=G44mRma5kUJnNFL3cbOg0tF6PbYSXAwfHBPtPyAF09T5W3qCv4 /CHDjOuF3EByvoi4cCMD0Ky+n0XV50fO42YVYJdWJNGmG1YVog2yLYItSDzDBABr eMO4fYLN2OJ89veSp+p7zURbnacBLFUFKNNq20HP/di71jLNzVFqbWcmc= Received: (qmail 41029 invoked by alias); 12 Nov 2018 19:16: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 40329 invoked by uid 89); 12 Nov 2018 19:15:41 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_NEUTRAL, TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=H*r:4.80, H*RU:sk:mail.th, HX-HELO:sk:mail.th, Hx-spam-relays-external:sk:mail.th X-HELO: mail.theobroma-systems.com Received: from vegas.theobroma-systems.com (HELO mail.theobroma-systems.com) (144.76.126.164) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 12 Nov 2018 19:15:21 +0000 Received: from [86.59.122.178] (port=49914 helo=osprey2.lan) by mail.theobroma-systems.com with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gMHg1-0004LJ-7T; Mon, 12 Nov 2018 20:15:13 +0100 From: Christoph Muellner To: Kyrill Tkachov , Philipp Tomsich , Richard Earnshaw , James Greenhalgh , Marcus Shawcroft Cc: gcc-patches@gcc.gnu.org, Christoph Muellner Subject: [PATCH 1/4] [aarch64/arm] Updating the cost table for xgene1. Date: Mon, 12 Nov 2018 20:14:55 +0100 Message-Id: <20181112191458.32635-1-christoph.muellner@theobroma-systems.com> *** gcc/ChangeLog *** 2018-xx-xx Christoph Muellner * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table for Xgene1. --- gcc/config/arm/aarch-cost-tables.h | 88 +++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h index 0bd93ba..2a28347 100644 --- a/gcc/config/arm/aarch-cost-tables.h +++ b/gcc/config/arm/aarch-cost-tables.h @@ -440,26 +440,26 @@ const struct cpu_cost_table xgene1_extra_costs = { 0, /* arith. */ 0, /* logical. */ - 0, /* shift. */ + COSTS_N_INSNS (1), /* shift. */ COSTS_N_INSNS (1), /* shift_reg. */ - COSTS_N_INSNS (1), /* arith_shift. */ - COSTS_N_INSNS (1), /* arith_shift_reg. */ - COSTS_N_INSNS (1), /* log_shift. */ - COSTS_N_INSNS (1), /* log_shift_reg. */ - COSTS_N_INSNS (1), /* extend. */ - 0, /* extend_arithm. */ - COSTS_N_INSNS (1), /* bfi. */ - COSTS_N_INSNS (1), /* bfx. */ + COSTS_N_INSNS (2), /* arith_shift. */ + COSTS_N_INSNS (2), /* arith_shift_reg. */ + COSTS_N_INSNS (2), /* log_shift. */ + COSTS_N_INSNS (2), /* log_shift_reg. */ + 0, /* extend. */ + COSTS_N_INSNS (1), /* extend_arithm. */ + 0, /* bfi. */ + 0, /* bfx. */ 0, /* clz. */ - COSTS_N_INSNS (1), /* rev. */ + 0, /* rev. */ 0, /* non_exec. */ true /* non_exec_costs_exec. */ }, { /* MULT SImode */ { - COSTS_N_INSNS (4), /* simple. */ - COSTS_N_INSNS (4), /* flag_setting. */ + COSTS_N_INSNS (3), /* simple. */ + COSTS_N_INSNS (3), /* flag_setting. */ COSTS_N_INSNS (4), /* extend. */ COSTS_N_INSNS (4), /* add. */ COSTS_N_INSNS (4), /* extend_add. */ @@ -467,8 +467,8 @@ const struct cpu_cost_table xgene1_extra_costs = }, /* MULT DImode */ { - COSTS_N_INSNS (5), /* simple. */ - 0, /* flag_setting (N/A). */ + COSTS_N_INSNS (4), /* simple. */ + COSTS_N_INSNS (4), /* flag_setting (N/A). */ COSTS_N_INSNS (5), /* extend. */ COSTS_N_INSNS (5), /* add. */ COSTS_N_INSNS (5), /* extend_add. */ @@ -477,55 +477,55 @@ const struct cpu_cost_table xgene1_extra_costs = }, /* LD/ST */ { - COSTS_N_INSNS (5), /* load. */ - COSTS_N_INSNS (6), /* load_sign_extend. */ - COSTS_N_INSNS (5), /* ldrd. */ + COSTS_N_INSNS (4), /* load. */ + COSTS_N_INSNS (5), /* load_sign_extend. */ + COSTS_N_INSNS (4), /* ldrd. */ COSTS_N_INSNS (5), /* ldm_1st. */ 1, /* ldm_regs_per_insn_1st. */ 1, /* ldm_regs_per_insn_subsequent. */ - COSTS_N_INSNS (10), /* loadf. */ - COSTS_N_INSNS (10), /* loadd. */ - COSTS_N_INSNS (5), /* load_unaligned. */ + COSTS_N_INSNS (9), /* loadf. */ + COSTS_N_INSNS (9), /* loadd. */ + 0, /* load_unaligned. */ 0, /* store. */ 0, /* strd. */ 0, /* stm_1st. */ 1, /* stm_regs_per_insn_1st. */ 1, /* stm_regs_per_insn_subsequent. */ - 0, /* storef. */ - 0, /* stored. */ + COSTS_N_INSNS (3), /* storef. */ + COSTS_N_INSNS (3), /* stored. */ 0, /* store_unaligned. */ - COSTS_N_INSNS (1), /* loadv. */ - COSTS_N_INSNS (1) /* storev. */ + COSTS_N_INSNS (9), /* loadv. */ + COSTS_N_INSNS (3) /* storev. */ }, { /* FP SFmode */ { - COSTS_N_INSNS (23), /* div. */ - COSTS_N_INSNS (5), /* mult. */ - COSTS_N_INSNS (5), /* mult_addsub. */ - COSTS_N_INSNS (5), /* fma. */ - COSTS_N_INSNS (5), /* addsub. */ - COSTS_N_INSNS (2), /* fpconst. */ - COSTS_N_INSNS (3), /* neg. */ - COSTS_N_INSNS (2), /* compare. */ - COSTS_N_INSNS (6), /* widen. */ - COSTS_N_INSNS (6), /* narrow. */ + COSTS_N_INSNS (22), /* div. */ + COSTS_N_INSNS (4), /* mult. */ + COSTS_N_INSNS (4), /* mult_addsub. */ + COSTS_N_INSNS (4), /* fma. */ + COSTS_N_INSNS (4), /* addsub. */ + COSTS_N_INSNS (1), /* fpconst. */ + COSTS_N_INSNS (4), /* neg. */ + COSTS_N_INSNS (9), /* compare. */ + COSTS_N_INSNS (4), /* widen. */ + COSTS_N_INSNS (4), /* narrow. */ COSTS_N_INSNS (4), /* toint. */ COSTS_N_INSNS (4), /* fromint. */ COSTS_N_INSNS (4) /* roundint. */ }, /* FP DFmode */ { - COSTS_N_INSNS (29), /* div. */ - COSTS_N_INSNS (5), /* mult. */ - COSTS_N_INSNS (5), /* mult_addsub. */ - COSTS_N_INSNS (5), /* fma. */ - COSTS_N_INSNS (5), /* addsub. */ - COSTS_N_INSNS (3), /* fpconst. */ - COSTS_N_INSNS (3), /* neg. */ - COSTS_N_INSNS (2), /* compare. */ - COSTS_N_INSNS (6), /* widen. */ - COSTS_N_INSNS (6), /* narrow. */ + COSTS_N_INSNS (27), /* div. */ + COSTS_N_INSNS (4), /* mult. */ + COSTS_N_INSNS (4), /* mult_addsub. */ + COSTS_N_INSNS (4), /* fma. */ + COSTS_N_INSNS (4), /* addsub. */ + COSTS_N_INSNS (1), /* fpconst. */ + COSTS_N_INSNS (4), /* neg. */ + COSTS_N_INSNS (9), /* compare. */ + COSTS_N_INSNS (4), /* widen. */ + COSTS_N_INSNS (4), /* narrow. */ COSTS_N_INSNS (4), /* toint. */ COSTS_N_INSNS (4), /* fromint. */ COSTS_N_INSNS (4) /* roundint. */