From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id 5B24A384D183 for ; Thu, 13 Oct 2022 20:15:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5B24A384D183 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x529.google.com with SMTP id b12so4152151edd.6 for ; Thu, 13 Oct 2022 13:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=X5QM/JvON784z6dpP/ltKvcUI5w1i20BD5cPpOHsxN0=; b=P7T5pqtbOQJH2uBEWBWypi5MHUqih2FG3dVR5hp+kVfDOgZUQOXYxaCUiW++8kPSNz zXHl3qGiD2a3FimDxmF7XWJg/lkUl+7QRpS2TcXPxIQoc4BC4A4DPm1jEHU2E7YChdI4 Gfn1OAN/LTbljk+v6NX8ksO23UUDBXy2jcXqrJbxFGoXR/AYa2PMIK+dQFm5GIDw2W13 e3ytIe8H9MXaLSXT9Q4Sp2lNRh+x4xx7glVgD3JB+KwWYptLG1DiB8/amagXemZW3RGT hQlO6hu6n+7Vmn2iqCQkBnzCZRuOk4GJEH2V8oYi4BqZcSYYYuCKGFUfhSOfEWX94IlB ivGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=X5QM/JvON784z6dpP/ltKvcUI5w1i20BD5cPpOHsxN0=; b=5cONjiexD6WmW/YeJcqSltz9CflUgaeD4PU8NaaOjyIMbTataCQn4MXTFbP7ETJz/f JuxO0hipfc9FV9DCN+iRHmadnjCavnRDcfwzTq7g8gAfC2eVD/95Zpdnm4og25g6L1P6 UCqvVhIeSbS6sbfeEVUFvHq2gTyzGLwpTuis9t9AR2Uc8hPv6IMCpA97NvYsYjeDMuJA SZFgtqyY3tXAVdeQ9e9cPVAuHVVGBAIp3Q7l6fp4lp1SDKtygmpWGxlbXU1gd75q5opW iyNHEGaFm8ylAqlRB3GXb2uCfaqxQzofaFt5acJ3R3bHWKL4mDVej0gYYFU7dE8DiHij Gzgg== X-Gm-Message-State: ACrzQf04NRLvyQA8w9QiujcSkxB6tkoh7eZ2kJU0ik1jNcU07Y89zIRk svAGC41LYOixbYPhfIPK3D3k6gfuk59Rq3SlvbM= X-Google-Smtp-Source: AMsMyM5jO7zn4QsW5roZMUE7EJqKrblmmTVnvYU/WI4CSbDJFRdMX64vNUOB2x4RjMGVdycMxUodWifIrkY1iI3iexc= X-Received: by 2002:a05:6402:358f:b0:45c:d152:b9 with SMTP id y15-20020a056402358f00b0045cd15200b9mr1267350edc.356.1665692116145; Thu, 13 Oct 2022 13:15:16 -0700 (PDT) MIME-Version: 1.0 References: <8c7380d2-2587-78c7-a85a-a4c8afef2284@rivosinc.com> In-Reply-To: <8c7380d2-2587-78c7-a85a-a4c8afef2284@rivosinc.com> From: Jonathan Wakely Date: Thu, 13 Oct 2022 21:15:04 +0100 Message-ID: Subject: Re: Fences/Barriers when mixing C++ atomics and non-atomics To: Vineet Gupta Cc: tech-unprivileged@lists.riscv.org, gcc@gcc.gnu.org, Uros Bizjak , Hans Boehm , Hongyu Wang Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,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 List-Id: On Thu, 13 Oct 2022 at 20:31, Vineet Gupta wrote: > > Hi, > > I have a testcase (from real workloads) involving C++ atomics and trying > to understand the codegen (gcc 12) for RVWMO and x86. > It does mix atomics with non-atomics so not obvious what the behavior is > intended to be hence some explicit CC of subject matter experts > (apologies for that in advance). > > Test has a non-atomic store And a non-atomic load of 'g' > followed by an atomic_load(SEQ_CST). I > assume that unadorned direct access defaults to safest/conservative seq_cst. Yes, the two functions below are identical. > > extern int g; > std::atomic a; > > int bar_noaccessor(int n, int *n2) > { > *n2 = g; > return n + a; > } > > int bar_seqcst(int n, int *n2) > { > *n2 = g; > return n + a.load(std::memory_order_seq_cst); > } >