Message ID | mptr19k2a92.fsf@arm.com |
---|---|
Headers |
Return-Path: <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 929E9385800B for <patchwork@sourceware.org>; Thu, 6 Jan 2022 14:46:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 929E9385800B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1641480376; bh=rMbjRrAntV9/aygD+z4YGr0ZD/K+C1sXZiOv89i7K2U=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=wZSup78UpQs9bMA74nNmqb8EHI8i9fGUcXpz+wq7iQqQRZ8JMTOX5mc0+2CrySvw/ Lvs1nSGg2BhrEx8UDm3t3EMp4CwgxrEL88KilNAWIpq2oaq2zOJ0wtxH+MWw0mdKv1 3yqSVhg1tzWCoYnspXUvN79yVvA+hDEHnUTvbEN4= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id EA5DE385840C for <gcc-patches@gcc.gnu.org>; Thu, 6 Jan 2022 14:45:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EA5DE385840C Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9584A1042; Thu, 6 Jan 2022 06:45:47 -0800 (PST) Received: from localhost (e121540-lin.manchester.arm.com [10.32.98.88]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 134653F5A1; Thu, 6 Jan 2022 06:45:46 -0800 (PST) To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, vmakarov@redhat.com, richard.sandiford@arm.com Subject: [PATCH 0/6] ira: Fix performance regression in exchange2 [PR98782] Date: Thu, 06 Jan 2022 14:45:45 +0000 Message-ID: <mptr19k2a92.fsf@arm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> From: Richard Sandiford via Gcc-patches <gcc-patches@gcc.gnu.org> Reply-To: Richard Sandiford <richard.sandiford@arm.com> Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> |
Series |
ira: Fix performance regression in exchange2 [PR98782]
|
|
Message
Richard Sandiford
Jan. 6, 2022, 2:45 p.m. UTC
This series of patches recovers the exchange2 performance lost in the GCC 11 timeframe (at least on aarch64 and Power9 -- thanks Pat for testing the latter). There are 6 patches, split into two groups of 3. The first 3 are just preparatory patches, although patch 2 does contain a minor bug fix. The other 3 patches are the ones that together fix the regression. I realise this is a bit invasive for stage 3. However, the series is fixing a large regression in an important benchmark and AFAIK there are no known acceptable mitigations that we could apply instead. I think the series is also working with concepts that already exist in IRA: it's really about tweaking the cost model used to control them. We also still have at least 3 months (more realistically 4 months) of testing before GCC 12 is released. So perhaps one option would be to apply any approved version of the series now, but with the understanding that if there's significant fallout (more than a handful of small tweaks or fixes), we would simply revert the patches rather than trying to rework them in-situ. The series is confined to IRA so reverting it should be simple. Would that be OK? Each patch bootstrapped & regression-tested individually on aarch64-linux-gnu. Also tested as a series on aarch64_be-elf, arm-linux-gnueabihf, powerpc64le-linux-gnu, and x86_64-linux-gnu. Richard
Comments
On 2022-01-06 09:45, Richard Sandiford wrote: > This series of patches recovers the exchange2 performance lost in the > GCC 11 timeframe (at least on aarch64 and Power9 -- thanks Pat for > testing the latter). > > There are 6 patches, split into two groups of 3. The first 3 are just > preparatory patches, although patch 2 does contain a minor bug fix. > The other 3 patches are the ones that together fix the regression. > > I realise this is a bit invasive for stage 3. However, the series is > fixing a large regression in an important benchmark and AFAIK there are > no known acceptable mitigations that we could apply instead. I think > the series is also working with concepts that already exist in IRA: > it's really about tweaking the cost model used to control them. > > We also still have at least 3 months (more realistically 4 months) of > testing before GCC 12 is released. So perhaps one option would be to > apply any approved version of the series now, but with the understanding > that if there's significant fallout (more than a handful of small tweaks > or fixes), we would simply revert the patches rather than trying to > rework them in-situ. The series is confined to IRA so reverting it > should be simple. Would that be OK? Richard. thank you for working on these issues. I don't think there is a problem with the GCC development stage here. These are patches solving existing PR(s). Of course it is better to do such changes earlier at the stage3, so IMHO the timing is right. I don't expect that the changes will result in serious problems like wrong code generation or RA crashes as they are about improving RA heuristics. They can result in new GCC test failures on some targets (we have many overconstrained tests expecting an exact GCC output). If we are overwhelmed with the new failures we can revert the patches. The first 3 patches are ok to commit. I'll look at the rest 3 ones this weekend and write you my opinion on Monday. I don't think there will be a problem with the last 3 patches. They are clearly improving RA heuristics. I just need some time to think about them. Thank you again for picking this difficult PR and working on it. > Each patch bootstrapped & regression-tested individually on > aarch64-linux-gnu. Also tested as a series on aarch64_be-elf, > arm-linux-gnueabihf, powerpc64le-linux-gnu, and x86_64-linux-gnu. >