Message ID | 20230725180206.284777-1-patrick@rivosinc.com |
---|---|
Headers |
Return-Path: <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp2643560vqg; Tue, 25 Jul 2023 11:04:17 -0700 (PDT) X-Google-Smtp-Source: APBJJlGbac3CYfkrIRVs82goC3XyznSHgc4iccYCx2NAe+EByywRvvBCRO6M2tZ/pLVZdzTw6IIx X-Received: by 2002:a17:906:73c9:b0:99b:4956:e4d9 with SMTP id n9-20020a17090673c900b0099b4956e4d9mr13538397ejl.39.1690308257667; Tue, 25 Jul 2023 11:04:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690308257; cv=none; d=google.com; s=arc-20160816; b=qhZT9JjpVFSfa7Yxqhsls1W2B7NrLD0V32QQzJtPbl0NixnYVK3UfmyqVePKB6SGLo Enu0bTE0/+VTG7073XIACyYCuusGoecY2RqVJy0CILSCDZurKpRgo2/lebMFiSc/yvtv 5dZ8q7iR5YDfqZGTyK8cPypcSfSL6BjT/rNJpXPgvJir8Zz3ms3Box8nKaiWMsi2JU6i KZBES4+6ev4wUzOkOY1sW4h1Ki0SmadXkkJCvyAeEV5qdBAq2E7giNpGx+k2N4VsBJ5A VEMxV0tbI/9krGGWrj9vG2lpLvezqK6nSH8kt0H3YX3nJbTZeot5k33IdZdpK/B5LIR8 ohqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender: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:dmarc-filter:delivered-to; bh=1OYhuDDTvH5qEgJixBgpo7QyZU81toZzDudvdvFVj6A=; fh=V424RJoyJREbwuNhiT0eP2mcXvcQgx7dP1gyRHYYn6Q=; b=s4AGhiGLdtT/JlBKD8YAo/qns6xxUTbh9uVvxSEgg0FxubSxxl6tJH3iuAE/bLMW8Q loXpAVzZhsgLb1+L2mxnarb++P9tNw+t+2i25w2bOQQppKbAdklQtEeUBqM83uzqo7iD 7WrWoDmxk+XdJvv35H+7RJFZVUnI65jAxJjsauFkVTS434xOqHmNluiLPnDSyoZOg7ks Z5/Jy/1cZ8s8EQLxIo2JsgoMvxoTFe9Wlat4Nl/7Vy9rkCw+i1GcMTcwQqZi8R1CdvC+ w1TdMeN9D27uLswVMdE3G46iPawwxzMsgci+VIvoi2hg5eIPl3A4SSor3PZoT1HcAqly ievA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b="Hg/KqVQa"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id v4-20020a170906488400b00992e4b9c096si8711341ejq.271.2023.07.25.11.04.17 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Jul 2023 11:04:17 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b="Hg/KqVQa"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 99CC73851171 for <ouuuleilei@gmail.com>; Tue, 25 Jul 2023 18:03:08 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id 28449385AF94 for <gcc-patches@gcc.gnu.org>; Tue, 25 Jul 2023 18:02:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 28449385AF94 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1b890e2b9b7so30243435ad.3 for <gcc-patches@gcc.gnu.org>; Tue, 25 Jul 2023 11:02:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1690308144; x=1690912944; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1OYhuDDTvH5qEgJixBgpo7QyZU81toZzDudvdvFVj6A=; b=Hg/KqVQanHGILGIxEIun2DScLjsl/0u0eAHG7sZLw9AB9o2v3IvmWb7JWVl4Db9/mU 45aSp0WutgnhrxfCgQKf/22FxOCUXMAb4qHSrV3Ykfn7Hl0x9z3+oqfFcA4avidjHSGd iIzE7mj1NXLuiw3R4mFLR4VfBRNKuhBYlDBgoDdKgOS49hOVvVmfnwZ6z46jlmuYQzOV rONfHXFZJfJW0lA2kwYr2SncqNNYX3N0tb/GVnZ/Q5yIfw7sPZXT6UAAymQ1PROpF7nD eGt6kcrH67rQgVDlrsT4EsV+ai5JOpngApT3bVyeJhfwsYQRr4XFPKdrMH5LDnUg3pnx 2HQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690308144; x=1690912944; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1OYhuDDTvH5qEgJixBgpo7QyZU81toZzDudvdvFVj6A=; b=K0+u87YN9v/+IznHGjly3v871ize/HzyDOPy0KZ3Gm2Kz5mR3Glk+UqG4NyYYTT4eg 4bGmU9hsuAMmlTwst9PxhsXPMPsKSoUE9gLgwFtbnG/c1L7wEtHhZEdEh30guTNMA7Cs hQ3/zCgBZxftL11DiY97iglvcTdKpk2OFTP0uD+G4GFGVzfCjzH18mbCgUagzK8oftNY 0E1Tmq9I4v9rtUpZKHisGj8KDqK+FC6sb2e9CyBqeE/vGhbytWjW+QPy2eabYgehSK6R x+vrXc/dzr1rq0lRrBjPX/iJs4KuGcwAUvZShCNW4rqGUuGeHnFvinhsrOQ9FJNBPLvW ujFQ== X-Gm-Message-State: ABy/qLYmie0mxEBIlZXUdLfKhto5ENtVyK2d+ESmODg2Y1jvCbMcvRV0 q0vZEfSsqKAKMZ07HfcsZYe5xB7ofH0u1LTDx0g= X-Received: by 2002:a17:903:1208:b0:1b9:e591:db38 with SMTP id l8-20020a170903120800b001b9e591db38mr30767plh.8.1690308144502; Tue, 25 Jul 2023 11:02:24 -0700 (PDT) Received: from patrick-ThinkPad-X1-Carbon-Gen-8.hq.rivosinc.com ([50.221.140.188]) by smtp.gmail.com with ESMTPSA id p1-20020a1709028a8100b001b3ce619e2esm11283352plo.179.2023.07.25.11.02.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Jul 2023 11:02:24 -0700 (PDT) From: Patrick O'Neill <patrick@rivosinc.com> To: gcc-patches@gcc.gnu.org Cc: jeffreyalaw@gmail.com, palmer@rivosinc.com, vineetg@rivosinc.com, andrew@sifive.com, kito.cheng@sifive.com, dlustig@nvidia.com, cmuellner@gcc.gnu.org, andrea@rivosinc.com, hboehm@google.com, Patrick O'Neill <patrick@rivosinc.com> Subject: [gcc13 backport 00/12] RISC-V: Implement ISA Manual Table A.6 Mappings Date: Tue, 25 Jul 2023 11:01:54 -0700 Message-Id: <20230725180206.284777-1-patrick@rivosinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230427162301.1151333-1-patrick@rivosinc.com> References: <20230427162301.1151333-1-patrick@rivosinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=unavailable 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.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> Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1764347411196977640 X-GMAIL-MSGID: 1772416671696113213 |
Series |
RISC-V: Implement ISA Manual Table A.6 Mappings
|
|
Message
Patrick O'Neill
July 25, 2023, 6:01 p.m. UTC
Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by Jeff Law. If there aren't any objections I'll commit this cherry-picked series on Thursday (July 27th). Patchset on trunk: https://inbox.sourceware.org/gcc-patches/20230427162301.1151333-1-patrick@rivosinc.com/ First commit: f37a36bce81b50a43ec1613c1d08d803642f7506 Also includes bugfix from: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109713 commit: 4bd434fbfc7865961a8e10d7e9601b28765ce7be [1] https://inbox.sourceware.org/gcc/mhng-b7423fca-67ec-4ce4-9694-4e062632ceb0@palmer-ri-x1c9/T/#t Martin Liska (1): riscv: fix error: control reaches end of non-void function Patrick O'Neill (11): RISC-V: Eliminate SYNC memory models RISC-V: Enforce Libatomic LR/SC SEQ_CST RISC-V: Enforce subword atomic LR/SC SEQ_CST RISC-V: Enforce atomic compare_exchange SEQ_CST RISC-V: Add AMO release bits RISC-V: Strengthen atomic stores RISC-V: Eliminate AMO op fences RISC-V: Weaken LR/SC pairs RISC-V: Weaken mem_thread_fence RISC-V: Weaken atomic loads RISC-V: Table A.6 conformance tests gcc/config/riscv/riscv-protos.h | 3 + gcc/config/riscv/riscv.cc | 66 ++++-- gcc/config/riscv/sync.md | 196 ++++++++++++------ .../riscv/amo-table-a-6-amo-add-1.c | 15 ++ .../riscv/amo-table-a-6-amo-add-2.c | 15 ++ .../riscv/amo-table-a-6-amo-add-3.c | 15 ++ .../riscv/amo-table-a-6-amo-add-4.c | 15 ++ .../riscv/amo-table-a-6-amo-add-5.c | 15 ++ .../riscv/amo-table-a-6-compare-exchange-1.c | 9 + .../riscv/amo-table-a-6-compare-exchange-2.c | 9 + .../riscv/amo-table-a-6-compare-exchange-3.c | 9 + .../riscv/amo-table-a-6-compare-exchange-4.c | 9 + .../riscv/amo-table-a-6-compare-exchange-5.c | 9 + .../riscv/amo-table-a-6-compare-exchange-6.c | 10 + .../riscv/amo-table-a-6-compare-exchange-7.c | 9 + .../gcc.target/riscv/amo-table-a-6-fence-1.c | 14 ++ .../gcc.target/riscv/amo-table-a-6-fence-2.c | 15 ++ .../gcc.target/riscv/amo-table-a-6-fence-3.c | 15 ++ .../gcc.target/riscv/amo-table-a-6-fence-4.c | 15 ++ .../gcc.target/riscv/amo-table-a-6-fence-5.c | 15 ++ .../gcc.target/riscv/amo-table-a-6-load-1.c | 16 ++ .../gcc.target/riscv/amo-table-a-6-load-2.c | 17 ++ .../gcc.target/riscv/amo-table-a-6-load-3.c | 18 ++ .../gcc.target/riscv/amo-table-a-6-store-1.c | 16 ++ .../gcc.target/riscv/amo-table-a-6-store-2.c | 17 ++ .../riscv/amo-table-a-6-store-compat-3.c | 18 ++ .../riscv/amo-table-a-6-subword-amo-add-1.c | 9 + .../riscv/amo-table-a-6-subword-amo-add-2.c | 9 + .../riscv/amo-table-a-6-subword-amo-add-3.c | 9 + .../riscv/amo-table-a-6-subword-amo-add-4.c | 9 + .../riscv/amo-table-a-6-subword-amo-add-5.c | 9 + gcc/testsuite/gcc.target/riscv/pr89835.c | 9 + libgcc/config/riscv/atomic.c | 4 +- 33 files changed, 563 insertions(+), 75 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-compat-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/pr89835.c
Comments
On Tue, Jul 25, 2023 at 11:01:54AM -0700, Patrick O'Neill wrote: > Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by > Jeff Law. > If there aren't any objections I'll commit this cherry-picked series > on Thursday (July 27th). Please don't before 13.2 will be released, the branch is frozen and none of this seems to be a release blocker. Jakub
On Tue, 25 Jul 2023 11:01:54 PDT (-0700), Patrick O'Neill wrote: > Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by > Jeff Law. > If there aren't any objections I'll commit this cherry-picked series > on Thursday (July 27th). +Jakub According to the "GCC 13.1.1 Status Report (2023-07-20)", it looks like we're frozen for 13.2 and thus would need a release maintainer to sign off on anything we backport until 13.2 is released. I'm not opposed to the backport, but it does looks like we're down to no P1 regressions which means we might release very soon. So we should at least make sure this gets through all the tests and such. It's kind of splitting hairs as this is a pretty bad set of bugs we're fixing and distros are probably going to just backport it anyway, so not sure what the right answer is. > Patchset on trunk: > https://inbox.sourceware.org/gcc-patches/20230427162301.1151333-1-patrick@rivosinc.com/ > First commit: f37a36bce81b50a43ec1613c1d08d803642f7506 > > Also includes bugfix from: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109713 > commit: 4bd434fbfc7865961a8e10d7e9601b28765ce7be > > [1] https://inbox.sourceware.org/gcc/mhng-b7423fca-67ec-4ce4-9694-4e062632ceb0@palmer-ri-x1c9/T/#t > > Martin Liska (1): > riscv: fix error: control reaches end of non-void function > > Patrick O'Neill (11): > RISC-V: Eliminate SYNC memory models > RISC-V: Enforce Libatomic LR/SC SEQ_CST > RISC-V: Enforce subword atomic LR/SC SEQ_CST > RISC-V: Enforce atomic compare_exchange SEQ_CST > RISC-V: Add AMO release bits > RISC-V: Strengthen atomic stores > RISC-V: Eliminate AMO op fences > RISC-V: Weaken LR/SC pairs > RISC-V: Weaken mem_thread_fence > RISC-V: Weaken atomic loads > RISC-V: Table A.6 conformance tests > > gcc/config/riscv/riscv-protos.h | 3 + > gcc/config/riscv/riscv.cc | 66 ++++-- > gcc/config/riscv/sync.md | 196 ++++++++++++------ > .../riscv/amo-table-a-6-amo-add-1.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-2.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-3.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-4.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-5.c | 15 ++ > .../riscv/amo-table-a-6-compare-exchange-1.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-2.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-3.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-4.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-5.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-6.c | 10 + > .../riscv/amo-table-a-6-compare-exchange-7.c | 9 + > .../gcc.target/riscv/amo-table-a-6-fence-1.c | 14 ++ > .../gcc.target/riscv/amo-table-a-6-fence-2.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-3.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-4.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-5.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-load-1.c | 16 ++ > .../gcc.target/riscv/amo-table-a-6-load-2.c | 17 ++ > .../gcc.target/riscv/amo-table-a-6-load-3.c | 18 ++ > .../gcc.target/riscv/amo-table-a-6-store-1.c | 16 ++ > .../gcc.target/riscv/amo-table-a-6-store-2.c | 17 ++ > .../riscv/amo-table-a-6-store-compat-3.c | 18 ++ > .../riscv/amo-table-a-6-subword-amo-add-1.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-2.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-3.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-4.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-5.c | 9 + > gcc/testsuite/gcc.target/riscv/pr89835.c | 9 + > libgcc/config/riscv/atomic.c | 4 +- > 33 files changed, 563 insertions(+), 75 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-6.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-7.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-compat-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/pr89835.c
On Tue, 25 Jul 2023 12:50:48 PDT (-0700), jakub@redhat.com wrote: > On Tue, Jul 25, 2023 at 11:01:54AM -0700, Patrick O'Neill wrote: >> Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by >> Jeff Law. >> If there aren't any objections I'll commit this cherry-picked series >> on Thursday (July 27th). > > Please don't before 13.2 will be released, the branch is frozen and none of > this seems to be a release blocker. Sorry I missed this. IMO it's fine to wait, this has been broken for 5-10 years so we can wait another cycle ;) > > Jakub
On 7/25/23 13:50, Jakub Jelinek wrote: > On Tue, Jul 25, 2023 at 11:01:54AM -0700, Patrick O'Neill wrote: >> Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by >> Jeff Law. >> If there aren't any objections I'll commit this cherry-picked series >> on Thursday (July 27th). > > Please don't before 13.2 will be released, the branch is frozen and none of > this seems to be a release blocker. Ugh. Missed the boat :( I could make an argument for inclusion given the strong desire to have compatible mappings across the toolchains and alignment with the RVI specs -- but I won't. As Palmer has indicated, it's been broken for a while and we can manage that breakage. jeff
On Tue, 25 Jul 2023 14:02:24 PDT (-0700), jeffreyalaw@gmail.com wrote: > > > On 7/25/23 13:50, Jakub Jelinek wrote: >> On Tue, Jul 25, 2023 at 11:01:54AM -0700, Patrick O'Neill wrote: >>> Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by >>> Jeff Law. >>> If there aren't any objections I'll commit this cherry-picked series >>> on Thursday (July 27th). >> >> Please don't before 13.2 will be released, the branch is frozen and none of >> this seems to be a release blocker. > Ugh. Missed the boat :( > > I could make an argument for inclusion given the strong desire to have > compatible mappings across the toolchains and alignment with the RVI > specs -- but I won't. As Palmer has indicated, it's been broken for a > while and we can manage that breakage. I think if we just merge it right after 13.2 and indicate that distros doing long-term binary builds before 13.3 backport the patches we should be fine. I think that's just Debian right now, so while it's an important set of bugs to get fixed it's just the single user. It's certainly a bummer to miss 13.2, but we've just got ourselves to blame for forgetting about the backport ;) > > > > > jeff
GCC 13.2 released[2] so I merged the series now that the branch is unfrozen. Thanks, Patrick [2] https://inbox.sourceware.org/gcc/ZMJeq%2FY5SN+7i8a+@tucnak/T/#u On 7/25/23 11:01, Patrick O'Neill wrote: > Discussed during the weekly RISC-V GCC meeting[1] and pre-approved by > Jeff Law. > If there aren't any objections I'll commit this cherry-picked series > on Thursday (July 27th). > > Patchset on trunk: > https://inbox.sourceware.org/gcc-patches/20230427162301.1151333-1-patrick@rivosinc.com/ > First commit: f37a36bce81b50a43ec1613c1d08d803642f7506 > > Also includes bugfix from: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109713 > commit: 4bd434fbfc7865961a8e10d7e9601b28765ce7be > > [1] https://inbox.sourceware.org/gcc/mhng-b7423fca-67ec-4ce4-9694-4e062632ceb0@palmer-ri-x1c9/T/#t > > Martin Liska (1): > riscv: fix error: control reaches end of non-void function > > Patrick O'Neill (11): > RISC-V: Eliminate SYNC memory models > RISC-V: Enforce Libatomic LR/SC SEQ_CST > RISC-V: Enforce subword atomic LR/SC SEQ_CST > RISC-V: Enforce atomic compare_exchange SEQ_CST > RISC-V: Add AMO release bits > RISC-V: Strengthen atomic stores > RISC-V: Eliminate AMO op fences > RISC-V: Weaken LR/SC pairs > RISC-V: Weaken mem_thread_fence > RISC-V: Weaken atomic loads > RISC-V: Table A.6 conformance tests > > gcc/config/riscv/riscv-protos.h | 3 + > gcc/config/riscv/riscv.cc | 66 ++++-- > gcc/config/riscv/sync.md | 196 ++++++++++++------ > .../riscv/amo-table-a-6-amo-add-1.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-2.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-3.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-4.c | 15 ++ > .../riscv/amo-table-a-6-amo-add-5.c | 15 ++ > .../riscv/amo-table-a-6-compare-exchange-1.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-2.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-3.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-4.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-5.c | 9 + > .../riscv/amo-table-a-6-compare-exchange-6.c | 10 + > .../riscv/amo-table-a-6-compare-exchange-7.c | 9 + > .../gcc.target/riscv/amo-table-a-6-fence-1.c | 14 ++ > .../gcc.target/riscv/amo-table-a-6-fence-2.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-3.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-4.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-fence-5.c | 15 ++ > .../gcc.target/riscv/amo-table-a-6-load-1.c | 16 ++ > .../gcc.target/riscv/amo-table-a-6-load-2.c | 17 ++ > .../gcc.target/riscv/amo-table-a-6-load-3.c | 18 ++ > .../gcc.target/riscv/amo-table-a-6-store-1.c | 16 ++ > .../gcc.target/riscv/amo-table-a-6-store-2.c | 17 ++ > .../riscv/amo-table-a-6-store-compat-3.c | 18 ++ > .../riscv/amo-table-a-6-subword-amo-add-1.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-2.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-3.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-4.c | 9 + > .../riscv/amo-table-a-6-subword-amo-add-5.c | 9 + > gcc/testsuite/gcc.target/riscv/pr89835.c | 9 + > libgcc/config/riscv/atomic.c | 4 +- > 33 files changed, 563 insertions(+), 75 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-6.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-7.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-compat-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-3.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-4.c > create mode 100644 gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-5.c > create mode 100644 gcc/testsuite/gcc.target/riscv/pr89835.c >