From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113912 invoked by alias); 15 Mar 2017 15:20:36 -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 113892 invoked by uid 89); 15 Mar 2017 15:20:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=HContent-Language:en-GB X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0064.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.64) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 Mar 2017 15:20:33 +0000 Received: from DB6PR0802MB2615.eurprd08.prod.outlook.com (10.172.252.20) by DB6PR0802MB2341.eurprd08.prod.outlook.com (10.172.228.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Wed, 15 Mar 2017 15:20:30 +0000 Received: from DB6PR0802MB2615.eurprd08.prod.outlook.com ([10.172.252.20]) by DB6PR0802MB2615.eurprd08.prod.outlook.com ([10.172.252.20]) with mapi id 15.01.0947.020; Wed, 15 Mar 2017 15:20:30 +0000 From: Wilco Dijkstra To: "Naveen.Hurugalawadi@cavium.com" , "Andrew.pinski@cavium.com" , Kyrylo Tkachov , James Greenhalgh CC: nd , GCC Patches Subject: Re: [PATCH][AArch64] Implement ALU_BRANCH fusion Date: Wed, 15 Mar 2017 15:20:00 -0000 Message-ID: References: In-Reply-To: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-ms-office365-filtering-correlation-id: cd5e6bcd-95c3-449c-ced0-08d46bb6d171 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:DB6PR0802MB2341; x-microsoft-exchange-diagnostics: 1;DB6PR0802MB2341;7:IfoWqmwWKv9PmMOow4oATY5m5PZjLvW1SddRqseNGELqTMjt8lLB/QrdXBlUCqxstevg04EZuw+2lU78VXG/QdLY6Gzh5iKGVmEAQ+v2S5/CLhiQCQrmfxhW3Ps9aAGhh4szx43ggO1leLgzxIVBWVncPgrJR58a4BK4Lz1qc594RnjYtUpNHa0mJ+pB8dWhlg8ZQpdp909xE3R3soD31qc+IxyRcSaNX5ckOOIeYg38idJSNN3pmW0TlkAf4QNjAHQ3DC4fEjFlItJLqwhJqtCBV0Vr0wt9nXUCwvjicQswmx67ILC4fU4HchftJKcmy6mZhN22oPGAnTgq/9TIag== nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123558025)(20161123564025)(6072148);SRVR:DB6PR0802MB2341;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0802MB2341; x-forefront-prvs: 02475B2A01 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39410400002)(39840400002)(39850400002)(39450400003)(39860400002)(8676002)(122556002)(9686003)(99286003)(6506006)(2900100001)(54906002)(2906002)(53936002)(3280700002)(229853002)(3846002)(102836003)(25786008)(77096006)(6436002)(5660300001)(6116002)(66066001)(74316002)(7736002)(3660700001)(305945005)(8936002)(55016002)(2501003)(7696004)(81166006)(2950100002)(76176999)(189998001)(6246003)(4326008)(38730400002)(86362001)(50986999)(54356999)(33656002)(6636002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2341;H:DB6PR0802MB2615.eurprd08.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2017 15:20:30.4866 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2341 X-SW-Source: 2017-03/txt/msg00826.txt.bz2 Hi, I think the patch isn't quite complete yet. You will also need changes in generic code. Currently sched_macro_fuse_insns() does: if (any_condjump_p (insn)) { unsigned int condreg1, condreg2; rtx cc_reg_1; targetm.fixed_condition_code_regs (&condreg1, &condreg2); cc_reg_1 =3D gen_rtx_REG (CCmode, condreg1); prev =3D prev_nonnote_nondebug_insn (insn); if (!reg_referenced_p (cc_reg_1, PATTERN (insn)) || !prev || !modified_in_p (cc_reg_1, prev)) return; } Ie. it explicitly looks for a flag-setting ALU instruction whose condition = is used by a conditional branch, so none of the cases in your patch can match. Note this code also excludes all CBZ type branches as fusion candidates, is that intended too? Wilco