From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by sourceware.org (Postfix) with ESMTPS id C513C3849AC5 for ; Fri, 19 Apr 2024 10:23:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C513C3849AC5 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C513C3849AC5 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::532 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713522190; cv=none; b=iZvOjH4g63ZWYMRhyL40IO3fZDVgbsPZJgxVXTHRKY7shM8yTQdKwuj/n3KkJZWWFhX3Oon1iFQrrZ0KTJIYpqn8w/1wHPzHO3TrkCU+UX2a0x0RUt3GNN1+eSimD1htRHt6DferHowd6KLNG33mX2+dMUXZlB5cc08eqRtRaI0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713522190; c=relaxed/simple; bh=Bww5SyKOYYDPe86dsqeBgrp7I22Bn75eq6afT99f/8M=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=J+iu74lorh/7NMaU1aQQeq7COY2ZcgSdRwJL19PfEs/bEWYkp2lu7fk2TaBmUJD6LiEfAYCSf/dx8RvccXs5t/aic5LPrTZPDXFF/51XFhWAuQ6A/JiJppV1HCdTTMeixwNFjQGR1Gyc3m+95TSS/wMdhP0ruaMpK/fLHl8lzvg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-56e136cbcecso2655298a12.3 for ; Fri, 19 Apr 2024 03:23:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1713522185; x=1714126985; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ku3z8FFECAIXgdsJFm+AFA8qZ4treLgPuc0+6muSgkc=; b=WUtEF4KWCBF2ie+sjch+9I9WZhq0zPONO7Jbbk2jmOsjmKOOGS95Y3mgN4SuqKL1cE wAdlPEjb5RFcSUd5cm1m7kBAbXN9eUAFwxrp3SzcPPCmNh2KIG98DAHbQtQqTD6IvyW+ EiM7ZS8J2aGQTxHEjnSK2n/lo4AltQqNWCm7eL1T+m5S4WbyGmMzyHu/e61ZH9omMibp f4L/17WyXkEl0Ct0uhhtGR2QErkHf33R3Ld5eOG2yJfmjBUABQ6jEFD4Zu47iYucMPt/ AxkP8JH2lA5RMqHFSC232y5grDekI05QDFlHC+FkopUsglaFhg5aLwngG9KihRdEwvdB cvCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713522185; x=1714126985; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ku3z8FFECAIXgdsJFm+AFA8qZ4treLgPuc0+6muSgkc=; b=W2rb1lOkv88Cj2J+D4pCmb2B768HMgrcIutTo+j19Ly38GESswVcqqAovQdExe1MX1 cqcocnER1E02IKAbXxzhtZH//MBjdDLbE4MUCYwoax+eNU5vlwdoKNG7UKmHFSqXrI+h jjfUuV+DtAtGp7VKhv54dZ+QaYBheFEui0+/clVvsyAoVk92fGsHPnbYcaK2cAq6xiR8 ScwYi8EbOlNiM2KKfw0rWekwB4m9dbZqkGgtKdm/De6iwTReD0BNPjS+wVdkYHNrRcet 6dfgImrvF2p3NZMIQfKAiPSokI/xbUH7T4OWGsjusczHxDN8aQ1Zviq7cvWqUipp5YBD YBdA== X-Gm-Message-State: AOJu0Yy9JKjOI5TFYsBvj5/A63ewhiXKNA8LrMf2pMGO20fzo6ZKWhES SX2F6i2F4Cm+Fl5UfOeNkz4k4IwP2d2kEEQ43ZU1k+smHC5unZGNU6bUwNEbkQA= X-Google-Smtp-Source: AGHT+IEgsYML+a4suTAKVV8uHGaueHGxBhmE5E6EJMFDijn5nByQb0uknhOnHguRxGdUaaSr84WECA== X-Received: by 2002:a17:906:5ad2:b0:a51:e451:6f3 with SMTP id x18-20020a1709065ad200b00a51e45106f3mr1171134ejs.23.1713522185347; Fri, 19 Apr 2024 03:23:05 -0700 (PDT) Received: from euler.schwinge.homeip.net (p200300c8b713f800f1860ca6b7da3140.dip0.t-ipconnect.de. [2003:c8:b713:f800:f186:ca6:b7da:3140]) by smtp.gmail.com with ESMTPSA id hg7-20020a170906f34700b00a4e5a6b57a2sm1996272ejb.163.2024.04.19.03.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Apr 2024 03:23:05 -0700 (PDT) From: Thomas Schwinge To: Jakub Jelinek Cc: gcc-patches@gcc.gnu.org, Richard Biener , Jeff Law , Eric Botcazou , Tom de Vries Subject: Re: [PATCH] rtlanal: Fix set_noop_p for volatile loads or stores [PR114768] In-Reply-To: References: User-Agent: Notmuch/0.30+8~g47a4bad (https://notmuchmail.org) Emacs/29.2 (x86_64-pc-linux-gnu) Date: Fri, 19 Apr 2024 12:23:03 +0200 Message-ID: <87wmot3b3s.fsf@euler.schwinge.ddns.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,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: Hi Jakub! On 2024-04-19T08:24:03+0200, Jakub Jelinek wrote: > --- gcc/testsuite/gcc.dg/pr114768.c.jj 2024-04-18 15:37:49.139433678 +0200 > +++ gcc/testsuite/gcc.dg/pr114768.c 2024-04-18 15:43:30.389730365 +0200 > @@ -0,0 +1,10 @@ > +/* PR rtl-optimization/114768 */ > +/* { dg-do compile } */ > +/* { dg-options "-O2 -fdump-rtl-final" } */ > +/* { dg-final { scan-rtl-dump "\\\(mem/v:" "final" { target { ! { nvptx*= -*-* } } } } } */ > + > +void > +foo (int *p) > +{ > + *p =3D *(volatile int *) p; > +} Why exclude nvptx target here? As far as I can see, it does behave in the exactly same way as expected; see 'diff' of before vs. after the 'gcc/rtlanal.cc' code changes: PASS: gcc.dg/pr114768.c (test for excess errors) [-FAIL:-]{+PASS:+} gcc.dg/pr114768.c scan-rtl-dump final "\\(mem/v:" --- 0/pr114768.c.347r.final 2024-04-19 11:34:34.577037596 +0200 +++ ./pr114768.c.347r.final 2024-04-19 12:08:00.118312524 +0200 @@ -13,15 +13,27 @@ ;; entry block defs 1 [%stack] 2 [%frame] 3 [%args] ;; exit block uses 1 [%stack] 2 [%frame] ;; regs ever live=20=09 -;; ref usage r1=3D{1d,2u} r2=3D{1d,2u} r3=3D{1d,1u}=20 -;; total ref usage 8{3d,5u,0e} in 1{1 regular + 0 call} insns. +;; ref usage r1=3D{1d,3u} r2=3D{1d,3u} r3=3D{1d,2u} r22=3D{1d,1u} r2= 3=3D{1d,2u}=20 +;; total ref usage 16{5d,11u,0e} in 4{4 regular + 0 call} insns. (note 1 0 4 NOTE_INSN_DELETED) (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) -(note 2 4 3 2 NOTE_INSN_DELETED) +(insn 2 4 3 2 (set (reg/v/f:DI 23 [ p ]) + (unspec:DI [ + (const_int 0 [0]) + ] UNSPEC_ARG_REG)) "source-gcc/gcc/testsuite/gcc.dg/pr1147= 68.c":8:1 14 {load_arg_regdi} + (nil)) (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) -(note 6 3 10 2 NOTE_INSN_DELETED) -(note 10 6 11 2 NOTE_INSN_EPILOGUE_BEG) -(jump_insn 11 10 12 2 (return) "source-gcc/gcc/testsuite/gcc.dg/pr1147= 68.c":10:1 289 {return} +(insn 6 3 7 2 (set (reg:SI 22 [ _1 ]) + (mem/v:SI (reg/v/f:DI 23 [ p ]) [1 MEM[(volatile int *)p_3(D)]= +0 S4 A32])) "source-gcc/gcc/testsuite/gcc.dg/pr114768.c":9:8 6 {*movsi_ins= n} + (nil)) +(insn 7 6 10 2 (set (mem:SI (reg/v/f:DI 23 [ p ]) [1 *p_3(D)+0 S4 A32]) + (reg:SI 22 [ _1 ])) "source-gcc/gcc/testsuite/gcc.dg/pr114768.= c":9:6 6 {*movsi_insn} + (expr_list:REG_DEAD (reg/v/f:DI 23 [ p ]) + (expr_list:REG_DEAD (reg:SI 22 [ _1 ]) + (nil)))) +(note 10 7 13 2 NOTE_INSN_EPILOGUE_BEG) +(note 13 10 11 3 [bb 3] NOTE_INSN_BASIC_BLOCK) +(jump_insn 11 13 12 3 (return) "source-gcc/gcc/testsuite/gcc.dg/pr1147= 68.c":10:1 289 {return} (nil) -> return) (barrier 12 11 0) --- 0/pr114768.s 2024-04-19 11:34:34.577037596 +0200 +++ ./pr114768.s 2024-04-19 12:08:00.118312524 +0200 @@ -13,5 +13,10 @@ { .reg.u64 %ar0; ld.param.u64 %ar0, [%in_ar0]; + .reg.u32 %r22; + .reg.u64 %r23; + mov.u64 %r23, %ar0; + ld.u32 %r22, [%r23]; + st.u32 [%r23], %r22; ret; } Gr=C3=BC=C3=9Fe Thomas