From patchwork Wed Oct 23 02:31:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takayuki 'January June' Suwa X-Patchwork-Id: 99356 Return-Path: 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 ACDFE3858CDA for ; Wed, 23 Oct 2024 02:32:02 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from omggw0012.mail.otm.yahoo.co.jp (omggw0012.mail.otm.yahoo.co.jp [182.22.18.39]) by sourceware.org (Postfix) with ESMTPS id 5FF7D3858D21 for ; Wed, 23 Oct 2024 02:31:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5FF7D3858D21 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=yahoo.co.jp Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=yahoo.co.jp ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5FF7D3858D21 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=182.22.18.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729650688; cv=none; b=VCqqvWjXdmnkRC841jRZxaCIZ7Ex5bqL+kUDS7/qnCobFzScjUzmMHFYWoOGbLztzdkRhAAL1/qhoIeYHcFM38/2L2UjZXHCU86podsytOifxUiUMNkbJTPG3IRhfCIkZev88kd8z7xLCmye8BO+BymmXmAXDfVc8sCo721/fVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729650688; c=relaxed/simple; bh=WFi0w9JlueBouwBSXajhJVLaVE5oVru8IKrr8arMDqI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=liNyoqZX3tgzLx21FstnCW1YSn0fMOoG8ktyQ/+FUsauGQk8G63ew4/i7wgUmx/LbaFHtTQ2irYZJbR7uVIVl13synUrIQMl1WzkG6PZXyKOfm36SPebn59TW/0zNjyfPihimzrthk47iz6MK6QI4RmRTeYikeDUp+T4IPp+S34= ARC-Authentication-Results: i=1; server2.sourceware.org X-YMail-OSG: qAqaJMgVM1nKFLBR7aIweRXaHZVh48J67PrIravxK_5mXqXeTHf9sx52Pz0UoLO RS8ejSQqRBDDhYJGAZCmVh5vHx_s6z59Zvel991ZHUAAm8s9fYdUgGupO7DqVO9lMfLpyI.WBfCf U4ijjwXLchE4LX25TCwZGW7Psd.UqX5zzG7C2_0kdv122ff5bC4zuAoj2R3ug7FBXiK4x5jLEYLn PX1kwSQykyY9lbKKY7rTaskG9T0dmPRmRbhKpFbTX4Ia1Xxrv0aokw_0TpkWxvDaYKhE4ucvIig0 BPV04cUl.Ryjw2V4oLJl0bZoQcd193xbsBL7M.ySe5ZxVA2gEh0S63AtKipvsrOb3XVfy1VviCcw mofUYmnMUpdopDa1xCpZZgwz4lF3J6M4G2cKRAgiGLHyGmknXMh0qWpFsu_MbjDeMISb..qrM7Sc cHUBkgo364pb3bfSk_WY1d0J4rQdxJWMM11aYBmp6ZviXgranR.To0R6igNsAk50h5AjDulC6RUe z7Kw8XLgo_smzglvQ7U87hGwZisKpXflqFr12I47LGDemNEx3Dx9vPMOE82h7XTaTP48AQxCh3uW eaVcKa3voF5jodQ0rq_7nohPI73FmguriUdRavfsEWWreWkh7GHzuB74oxAxNtSbjLZskTKWuc3Z AlwcXH3jZUa7Bcb8Qbg.PrcWyWxWA2ThRIvo2ojjDSXqcqTdOnzeu5ad1NAvZOQ8wHI3P.e2YHRN Lc9z3uY.kxymg_o0Tr2VmVxUJS_gzn8lGOQwWUReP_L3y3d9qBpoNpybQbJz1GjWwSoXycwwXPdj kUoFV5JysUGGX2FDsf98u3_zJGXmxUnDLhKpkeONRjk0wux5GBSVEbWGColGqAhD6G7mm7Crh565 6ZIbpiXwvadpUgM8FwvKq1VPmkbrklFejFfpLWAIhW81ipedqW02rfN5NNcT1zws3q0BkzIjfBoj pgh7w1yv6PCrj0izNL1wt3qRjlWZIPk0P_Uf0mN00n1yXLfKQCuP6JrsrN3dE2GFxPCOufdki_iV cEnrg4ZRbdu1VPxwIhadRHROEnXMIq8wi4YE73694TJrE1V5oD323dfsJKN6aX8QAEua62rik2FS vNbt_gKnxVXDXmi2jDVWsLh5YvRA3PrYMHDpnwvfOG2GK40fsStHwmRuf8NnSfDnhrEeGSx5xsV6 w2qW5SPn_G0CSnihEGA-- Received: from sonicgw.mail.yahoo.co.jp by sonicconh6002.mail.ssk.yahoo.co.jp with HTTP; Wed, 23 Oct 2024 02:31:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1729650675; s=yj20110701; d=yahoo.co.jp; h=References:Content-Transfer-Encoding:Content-Type:Subject:From:Cc:To:MIME-Version:Date:Message-ID; bh=oXtIQH5Qv7wH2TcfyflShA4O/JuBYLnYRPmhDqYdmbE=; b=Aor19YMQ82AulU/5EH5cudP4K4vi7zJf5KeZHwdU+kKjx/1v5RtnixeeRC4A5DbK H44zsEpgDVjX7TULrK6P/gmHiM5t70l/2EjHvToDws2Kt25ynk7wBIWVwVoZ2Z7e+rH +g4ruFBKvXM1N6Akhaj8Qo5vQU7R2Ngm6TzyXj6c= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=yj20110701; d=yahoo.co.jp; h=Message-ID:Date:MIME-Version:Cc:From:Content-Type:Content-Transfer-Encoding:References; b=K6qBymOSvTIRRlrmF9fPqTNE2BP2ybChs8uRPmO+X0+8dCB9w5QwuUj5pPuJPgFt UZkYBriO9Z4dzHHloe0JdKsjyAT28fTuzI5zB8uaJefq6CXEFJwJGPfW+SY6NLE8Crm tjtfIfVnEC5uZY/P5eAKNxWULvkdOpjryaeVoWW8=; Received: by smtphe6001.mail.ssk.ynwp.yahoo.co.jp (YJ Hermes SMTP Server) with ESMTPA ID f6122f938e17eff03a7a08ef42304b1b; Wed, 23 Oct 2024 11:31:18 +0900 (JST) Message-ID: <1cb70522-1290-4411-93ac-5e800a7b759d@yahoo.co.jp> Date: Wed, 23 Oct 2024 11:31:15 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches@gcc.gnu.org Cc: Max Filippov From: Takayuki 'January June' Suwa Subject: [PATCH] xtensa: Define TARGET_DIFFERENT_ADDR_DISPLACEMENT_P target hook References: <1cb70522-1290-4411-93ac-5e800a7b759d.ref@yahoo.co.jp> X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org In commit bc5a9dab55d13f888a3cdd150c8cf5c2244f35e0 ("gcc: xtensa: reorder movsi_internal patterns for better code generation during LRA"), the instruction order in "movsi_internal" MD definition was changed to make LRA use load/store instructions with larger memory address displacements, but as a side effect, it now uses the larger displacements (ie., the larger instructions) even outside of reload operations. The underlying problem is that LRA assumes by default that there is only one maximal legitimate displacement for the same address structure, meaning that it has no choice but to use the first load/store instruction it finds. To fix this, define TARGET_DIFFERENT_ADDR_DISPLACEMENT_P hook to always return true. gcc/ChangeLog: * config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P): Add new target hook to always return true. * config/xtensa/xtensa.md (movsi_internal): Revert the previous changes. --- gcc/config/xtensa/xtensa.cc | 3 +++ gcc/config/xtensa/xtensa.md | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc index 43b1332d42b..d2793822641 100644 --- a/gcc/config/xtensa/xtensa.cc +++ b/gcc/config/xtensa/xtensa.cc @@ -363,6 +363,9 @@ static rtx xtensa_delegitimize_address (rtx); #undef TARGET_MAX_ANCHOR_OFFSET #define TARGET_MAX_ANCHOR_OFFSET 1020 +#undef TARGET_DIFFERENT_ADDR_DISPLACEMENT_P +#define TARGET_DIFFERENT_ADDR_DISPLACEMENT_P hook_bool_void_true + struct gcc_target targetm = TARGET_INITIALIZER; diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index f19e1fd16b5..2c08c7d6bf1 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -1279,15 +1279,13 @@ }) (define_insn "movsi_internal" - [(set (match_operand:SI 0 "nonimmed_operand" "=D,D,D,a,U,D,R,R,a,q,a,a,W,a,*a,*A") - (match_operand:SI 1 "move_operand" "M,D,d,U,r,R,D,d,r,r,I,Y,i,T,*A,*r"))] + [(set (match_operand:SI 0 "nonimmed_operand" "=D,D,D,D,R,R,a,q,a,a,W,a,a,U,*a,*A") + (match_operand:SI 1 "move_operand" "M,D,d,R,D,d,r,r,I,Y,i,T,U,r,*A,*r"))] "xtensa_valid_move (SImode, operands)" "@ movi.n\t%0, %x1 mov.n\t%0, %1 mov.n\t%0, %1 - %v1l32i\t%0, %1 - %v0s32i\t%1, %0 %v1l32i.n\t%0, %1 %v0s32i.n\t%1, %0 %v0s32i.n\t%1, %0 @@ -1297,11 +1295,13 @@ movi\t%0, %1 const16\t%0, %t1\;const16\t%0, %b1 %v1l32r\t%0, %1 + %v1l32i\t%0, %1 + %v0s32i\t%1, %0 rsr\t%0, ACCLO wsr\t%1, ACCLO" - [(set_attr "type" "move,move,move,load,store,load,store,store,move,move,move,move,move,load,rsr,wsr") + [(set_attr "type" "move,move,move,load,store,store,move,move,move,move,move,load,load,store,rsr,wsr") (set_attr "mode" "SI") - (set_attr "length" "2,2,2,3,3,2,2,2,3,3,3,3,6,3,3,3")]) + (set_attr "length" "2,2,2,2,2,2,3,3,3,3,6,3,3,3,3,3")]) (define_split [(set (match_operand:SHI 0 "register_operand")