From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 37FB43857023; Fri, 30 Apr 2021 08:30:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 37FB43857023 From: "linkw at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/100328] IRA doesn't model dup num constraint well Date: Fri, 30 Apr 2021 08:30:46 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: linkw at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: attachments.created Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2021 08:30:47 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D100328 --- Comment #1 from Kewen Lin --- Created attachment 50715 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D50715&action=3Dedit ira:consider matching cstr in all alternatives With little understanding on ira, I am not quite sure this patch is on the reasonable direction. It aims to check the matching constraint in all alternatives, if there is one alternative with matching constraint and matc= hes the current preferred regclass, it will record the output operand number and further create one copy for it. Normally it can get the priority against shuffle copies and the matching constraint will get satisfied with higher possibility, reload doesn't create extra copies to meet the matching constr= aint or the desirable register class when it has to. For FMA A,B,C,D, I think ideally copies A/B, A/C, A/D can firstly stay as shuffle copies, and later any of A,B,C,D gets assigned by one hardware regi= ster which is a VSX register but not a FP register, which means it has to pay co= sts once we can NOT go with VSX alternatives, so at that time we can increase t= he freq for the remaining copies related to this, once the matching constraint gets satisfied further, there aren't any extra costs to pay. This idea seem= s a bit complicated in the current framework, so the proposed patch aggressively emphasizes the matching constraint at the time of creating copies. FWIW bootstrapped/regtested on powerpc64le-linux-gnu P9. The evaluation with Power9 SPEC2017 all run shows 505.mcf_r +2.98%, 508.namd_r +3.37%, 519.lbm_r +2.51%, no remarkable degradation is observed.=