From patchwork Fri Nov 17 20:43:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xi Ruoyao X-Patchwork-Id: 166332 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp802343vqn; Fri, 17 Nov 2023 12:45:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IHa5IiBJd4+kSfX/eXH+NrUDTWk6SIexLYWBua3dcX4+N2IksNBUo4XUNBjM/UOizd6aP3c X-Received: by 2002:a05:6214:ca2:b0:670:8d2d:e5c3 with SMTP id s2-20020a0562140ca200b006708d2de5c3mr332115qvs.31.1700253904871; Fri, 17 Nov 2023 12:45:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700253904; cv=pass; d=google.com; s=arc-20160816; b=BZkAufHvsruMkT0RTQIfDLc8KaeVpCUDXuRblyIzw1T59YwsEkM/mTGMOum3uP844Q I6CZF6ks+xCYRIKUi0kx6TP8GXqqparVM3dUbXOec+2OpkDwetnkeDOy7SjIrmj7ma2C 3hGB9we9lCTgv9CE6d3/iJEmhqkRrPAKKA91EFn23OGUGPP0KKGri8stLR4KwMCmxJrD jUeAZKMKVh7sECXgrXbotU5UrknX2jMBMmnWCA+Magd12Nyn5XtjrDEZVPHJ98dhP3mo FMum6CERqsaTfmsnCa62oAc9bGhQXQu2vxJYTgsbkzqxmJnXQ+ZUqX4g4CtiyVw0Q/qs Zj5g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=uq+lP3dIdJyXD8SSCuBxg9QGEb4Lw8+AeEeu0IXdIJ0=; fh=oUCfM/eMlWtMCtZZKY1bglzxCo7b3kw9D5LTFFWuz38=; b=W+tFGU3k709ytfUEf8f1WbEZTCx0HN5GSzQGmCX4mCh+WZh2OcqRT9TnnAWeEC+kBp 19HPpzurM8hNEyPEYZdsHp9Rx/XwxrtXVI/yRjI/W/kejarkbvm452113//DT1fRns0a +rPbwhNzlLa8IQbRmcgNBesFLP+1XIwcpHYZR9JP7iW68JrkEqt+L4nWAq2mY9P2MQBE tvFB8BvwdSitgotSLI2vkBoekMiZtqVLvHb6IBDz/apOEGj9uflc32D42iZZ5Mvp3UYv ruVtFA57fxUyqrWhRMpfe9cG/bP35dKaIYlOJB4SYqSWlsZnVsuqkaVPjQnMxoP8RC3I FTTg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@xry111.site header.s=default header.b=JnaHZv1N; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=xry111.site Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h21-20020a37de15000000b00765ad3da644si2235634qkj.600.2023.11.17.12.45.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 12:45:04 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@xry111.site header.s=default header.b=JnaHZv1N; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=xry111.site Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E0B423882060 for ; Fri, 17 Nov 2023 20:44:44 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id E888B385772E for ; Fri, 17 Nov 2023 20:44:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E888B385772E Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E888B385772E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=89.208.246.23 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700253857; cv=none; b=Kl4Bz95nqbpOUsdgZWGSKMdgjSX0on7Au8s+j/WmBeGf90elLQYrWA2mSxa25KU9KhU6V3gS63VKU39mKds4Mg7NSrfPjgoZuMKkAwsw6zPKOlH20womqkh0oZoFzrbRz4hDsu9f/w89C4mJ2/GHWj3Va/+yY6eZbJUwd6jugGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700253857; c=relaxed/simple; bh=0lj99FZkrpKBwSDWpTjwS0XdyNjjPkk3rdIq2/zoewU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=nk9tLM0E+ulcMiReFsV55g1av9qXwEQq+ypU+26XOl1WWcmrd+hMY6tiElPz27l1Tg0Ok58NHwF3uOczsHENeNFpw9Wfc1966CwW3Ljt+k77UmUTMv0QZJa+11jdXyDkDGaa2ErAyCebxDc4fhMbm672SxAuH+Toml9b6+fy9q0= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1700253855; bh=0lj99FZkrpKBwSDWpTjwS0XdyNjjPkk3rdIq2/zoewU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JnaHZv1NNPDlG2XAy6onSEzrlEDCPDJYhYoVkqcuUJSzZ1Ot3dkjLAnoMOjpRdJNV nxdBczUN924TwRmm+As9U6L+fklu9jINz6ESTyNG7RYLUw7lZZLrlBVLX27SDF3jL6 L71gtGnZ8XO+OKDKJAxotZ+iViAjwl0bopNmQxOg= Received: from stargazer.. (unknown [IPv6:240e:358:1152:b00:dc73:854d:832e:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 4363F66B3B; Fri, 17 Nov 2023 15:44:11 -0500 (EST) From: Xi Ruoyao To: gcc-patches@gcc.gnu.org Cc: chenglulu , i@xen0n.name, xuchenghua@loongson.cn, Xi Ruoyao Subject: [PATCH v2 5/6] LoongArch: Don't emit dbar 0x700 if -mld-seq-sa Date: Sat, 18 Nov 2023 04:43:22 +0800 Message-ID: <20231117204323.453536-6-xry111@xry111.site> X-Mailer: git-send-email 2.42.1 In-Reply-To: <20231117204323.453536-1-xry111@xry111.site> References: <20231117204323.453536-1-xry111@xry111.site> MIME-Version: 1.0 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, LIKELY_SPAM_FROM, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782845438544757570 X-GMAIL-MSGID: 1782845438544757570 This option (CPUCFG word 0x3 bit 23) means "the hardware guarantee that two loads on the same address won't be reordered with each other". Thus we can omit the "load-load" barrier dbar 0x700. This is only a micro-optimization because dbar 0x700 is already treated as nop if the hardware supports LD_SEQ_SA. gcc/ChangeLog: * config/loongarch/loongarch.cc (loongarch_print_operand): Don't print dbar 0x700 if TARGET_LD_SEQ_SA. * config/loongarch/sync.md (atomic_load): Likewise. --- gcc/config/loongarch/loongarch.cc | 2 +- gcc/config/loongarch/sync.md | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc index b4bb2b6eeb5..5d3282c5e93 100644 --- a/gcc/config/loongarch/loongarch.cc +++ b/gcc/config/loongarch/loongarch.cc @@ -6057,7 +6057,7 @@ loongarch_print_operand (FILE *file, rtx op, int letter) if (loongarch_cas_failure_memorder_needs_acquire ( memmodel_from_int (INTVAL (op)))) fputs ("dbar\t0b10100", file); - else + else if (!TARGET_LD_SEQ_SA) fputs ("dbar\t0x700", file); break; diff --git a/gcc/config/loongarch/sync.md b/gcc/config/loongarch/sync.md index 67848d72b87..ce3ce89a61d 100644 --- a/gcc/config/loongarch/sync.md +++ b/gcc/config/loongarch/sync.md @@ -119,13 +119,14 @@ (define_insn "atomic_load" case MEMMODEL_SEQ_CST: return "dbar\t0x11\\n\\t" "ld.\t%0,%1\\n\\t" - "dbar\t0x14\\n\\t"; + "dbar\t0x14"; case MEMMODEL_ACQUIRE: return "ld.\t%0,%1\\n\\t" - "dbar\t0x14\\n\\t"; + "dbar\t0x14"; case MEMMODEL_RELAXED: - return "ld.\t%0,%1\\n\\t" - "dbar\t0x700\\n\\t"; + return TARGET_LD_SEQ_SA ? "ld.\t%0,%1\\n\\t" + : "ld.\t%0,%1\\n\\t" + "dbar\t0x700"; default: /* The valid memory order variants are __ATOMIC_RELAXED, __ATOMIC_SEQ_CST,