From patchwork Wed Nov 29 14:15:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 1869701 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SgLwT2JVbz1yST for ; Thu, 30 Nov 2023 01:16:19 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9A50B3858030 for ; Wed, 29 Nov 2023 14:16:16 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id B3DD33858D28 for ; Wed, 29 Nov 2023 14:16:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B3DD33858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B3DD33858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.137.180 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701267364; cv=none; b=gMCYzrJhIxZlVGWJNp8Hz73pLg4OS9GN550rBBvpQW3spVJJtT8d544sSayf2LJNGh7hJ0vF+XtgugKVuHbek0cL5C0UPPb8Q1YsKtJvkTtIADsn7HgpI4xSCmS6sveQtHmwgYuNIYqywlaHeRbOPWpXzS9DVpn7qqJ0kziubrg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701267364; c=relaxed/simple; bh=bOxlfwQUDnTmWrrUQX+ko3HAjaoSUFxtXSPbW1QQvlA=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=jFgUJ0z+fIwSgZpnEBXeLX3mRgmhTSJfptv3gsq/dApy/MCMv33ZVfnMVQEpkqVGzfBDfZDtphYvBrnDV9Aboj87PVNiwy0//nkvDRnanNiCPLvckGEAqPS+G9dASvsbPMdLYd1g5IyzDjV/5z6aBRZBmdj5YzMlliY482Sn+aE= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: dUqjApaYTeSYkFcaoLFTeA== X-CSE-MsgGUID: EYvxjMNCRZqBEyvRAy46Ww== X-IronPort-AV: E=Sophos;i="6.04,235,1695715200"; d="scan'208,223";a="24011838" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 29 Nov 2023 06:15:57 -0800 IronPort-SDR: SnnUfJ/T/4ICnZHPUgfsl1AepJGHJS7eAk2fmgdA9rNiWMzT+Y4QcHj1RFh0OUI7nvlHj6raPJ GgHSCFwVhiL7pcIdl/yuwlg33Mj5vDNN3nW6zCqX1tGYf0EJqwo0I85hSQmli/aG9uXkYH13ci lwaqBtbrp8rx1iz0sHkpzLKxnMXao93xM3S7bjqjeA39GQy+jKm963xxPjtMMIEX2hJ5z4A0O1 Q0nQ9zTknR4KMLb/2/7U61p929qdSDG4s/4h41t8e4/PwjErfaWo+1MIxYp5FZ94yN1fNi22dk zvY= From: Thomas Schwinge To: Sandra Loosemore , CC: Jakub Jelinek , Tobias Burnus Subject: In 'libgomp.c/target-simd-clone-{1,2,3}.c', restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa' (was: [PATCH v4] OpenMP: Generate SIMD clones for functions with "declare target") In-Reply-To: <927ad110-065e-9414-1312-bff5a0644e97@siemens.com> References: <927ad110-065e-9414-1312-bff5a0644e97@siemens.com> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/28.2 (x86_64-pc-linux-gnu) Date: Wed, 29 Nov 2023 15:15:50 +0100 Message-ID: <87jzq063xl.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, 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+incoming=patchwork.ozlabs.org@gcc.gnu.org Hi! On 2022-11-14T21:46:15-0700, Sandra Loosemore via Gcc-patches wrote: > [...] I've added infrastructure to support testing on the offload > compiler, added new test cases, and reworked the existing test cases to > scan for interesting things written to the dump file instead of > examining the .s output. Thanks! (..., belatedly. I think it was me who suggested that.) Just one minor fix-up: > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c > @@ -0,0 +1,43 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ This means, the test case is active if GCN offloading compilation is enabled. But, consider the case that nvptx offloading compilation also is enabled: > +/* { dg-additional-options "-O2 -foffload-options=-fdump-ipa-simdclone-details" } */ This will produced dump files for both, GCN and nvptx, separately. However, this isn't applicable for nvptx, thus no dump file produced for that. > +[...] > +/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*N.*_addit" "simdclone" } } */ > +/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*M.*_addit" "simdclone" } } */ ..., and this will try to scan dump files for both GCN and nvptx. The latter don't exist, resulting in UNRESOLVEDs for nvptx. I've pushed to master branch commit 4c909c6ee381a43081d68abc1ff8a35ce20d24d9 "In 'libgomp.c/target-simd-clone-{1,2,3}.c', restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa'", see attached. (This obviously depends on "testsuite: Add 'only_for_offload_target' wrapper for 'scan-offload-tree-dump' etc.", which I've also just pushed to master branch in commit 27c79b91f6008a21006d4e7053a98e63f2990bb2.) Grüße Thomas > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c > @@ -0,0 +1,39 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ > +/* { dg-additional-options "-foffload-options=-fdump-ipa-simdclone-details -foffload-options=-fno-openmp-target-simd-clone" } */ > +[...] > +/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } } */ > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c > @@ -0,0 +1,40 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ > +/* { dg-additional-options "-O2 -foffload-options=-fdump-ipa-simdclone-details" } */ > +[...] > +/* { dg-final { scan-offload-ipa-dump "device doesn't match" "simdclone" { target x86_64-*-* } } } */ > +/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */ ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 From 4c909c6ee381a43081d68abc1ff8a35ce20d24d9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 21 Nov 2023 20:20:21 +0100 Subject: [PATCH] In 'libgomp.c/target-simd-clone-{1,2,3}.c', restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa' This gets rid of UNRESOLVEDs if nvptx offloading compilation is enabled in addition to GCN: PASS: libgomp.c/target-simd-clone-1.c (test for excess errors) PASS: libgomp.c/target-simd-clone-1.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "Generated local clone _ZGV.*N.*_addit" -UNRESOLVED: libgomp.c/target-simd-clone-1.c scan-nvptx-none-offload-ipa-dump simdclone "Generated local clone _ZGV.*N.*_addit" PASS: libgomp.c/target-simd-clone-1.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "Generated local clone _ZGV.*M.*_addit" -UNRESOLVED: libgomp.c/target-simd-clone-1.c scan-nvptx-none-offload-ipa-dump simdclone "Generated local clone _ZGV.*M.*_addit" PASS: libgomp.c/target-simd-clone-2.c (test for excess errors) PASS: libgomp.c/target-simd-clone-2.c scan-amdgcn-amdhsa-offload-ipa-dump-not simdclone "Generated .* clone" -UNRESOLVED: libgomp.c/target-simd-clone-2.c scan-nvptx-none-offload-ipa-dump-not simdclone "Generated .* clone" PASS: libgomp.c/target-simd-clone-3.c (test for excess errors) PASS: libgomp.c/target-simd-clone-3.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "device doesn't match" -UNRESOLVED: libgomp.c/target-simd-clone-3.c scan-nvptx-none-offload-ipa-dump simdclone "device doesn't match" PASS: libgomp.c/target-simd-clone-3.c scan-amdgcn-amdhsa-offload-ipa-dump-not simdclone "Generated .* clone" -UNRESOLVED: libgomp.c/target-simd-clone-3.c scan-nvptx-none-offload-ipa-dump-not simdclone "Generated .* clone" Minor fix-up for commit 309e2d95e3b930c6f15c8a5346b913158404c76d 'OpenMP: Generate SIMD clones for functions with "declare target"'. libgomp/ * testsuite/libgomp.c/target-simd-clone-1.c: Restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa'. * testsuite/libgomp.c/target-simd-clone-2.c: Likewise. * testsuite/libgomp.c/target-simd-clone-3.c: Likewise. --- libgomp/testsuite/libgomp.c/target-simd-clone-1.c | 4 ++-- libgomp/testsuite/libgomp.c/target-simd-clone-2.c | 2 +- libgomp/testsuite/libgomp.c/target-simd-clone-3.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-1.c b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c index a9defc4cdd6..05e1568128a 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-1.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c @@ -39,5 +39,5 @@ int main (void) /* Although addit has external linkage, we expect clones to be generated as for a function with internal linkage. */ -/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*N.*_addit" "simdclone" } } */ -/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*M.*_addit" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "Generated local clone _ZGV.*N.*_addit" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "Generated local clone _ZGV.*M.*_addit" "simdclone" } } */ diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-2.c b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c index 05a38ae2bc5..58f9e29332e 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-2.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c @@ -36,4 +36,4 @@ int main (void) return 0; } -/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } } */ diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-3.c b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c index bde091e24ba..796a2a23bc3 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-3.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c @@ -36,5 +36,5 @@ int main (void) return 0; } -/* { dg-final { scan-offload-ipa-dump "device doesn't match" "simdclone" { target x86_64-*-* } } } */ -/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "device doesn't match" "simdclone" { target x86_64-*-* } } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */ -- 2.34.1