From patchwork Thu Jun 22 10:03:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chung-Lin Tang X-Patchwork-Id: 1798334 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=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=XuvLNzEt; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QmwvG5Jwdz20XS for ; Thu, 22 Jun 2023 20:04:10 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 74691385841E for ; Thu, 22 Jun 2023 10:04:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 74691385841E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687428248; bh=XUHoGyIk1PwMsBkzQTkRtZ3D1qb4M5rgvL6378+47C4=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=XuvLNzEtgZBAqtJ5AhBTnf1xu4vwdyyCuFNItejSblUTg+uvAExZnTwgNkkGFBawu 99Uuc/lnemgj/Om0k6buf7VixSMBpFVUWOvsV9jDb8SIcLoajLE0MadXvVWvGhXi0/ z80W+2t0U2wyqXC8+8eFXdahbDlcdzRZngwMy3Ig= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2067.outbound.protection.outlook.com [40.107.255.67]) by sourceware.org (Postfix) with ESMTPS id 284113858D35 for ; Thu, 22 Jun 2023 10:03:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 284113858D35 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=knimcusdXll4aU4tz5M0jygwC0F+ozc6DgUTZro8+C6DFrt5qLyR8j/oubmqXmPBx0Ylfs5kf7LGho6lWBLxRbCN2zZ6qd9VH4yuYlqbfBG2+TPYKUWI3Ia44vxVGVOU2P8LqFXEUA1HZjMjNIHYsjeWwr05KLrTYwPmHPqZDOwr14jd7t2GSqeKxrvpLqIvX+7gwjUZP8z64Wr2mwL6Sg3V96hwFe+QcppD+yY/fWuUf/MaLwTLpfCer/oyYBndQon14QG3pQ9o59gNBydNQQ+WzPuWEpz9WbZz+tR55f/dnYl9K71MZw0doFaqDuXMVBB5xnDVIg2Kt80C5WsEPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XUHoGyIk1PwMsBkzQTkRtZ3D1qb4M5rgvL6378+47C4=; b=jSUXpJEfy5/3/ekoflSDbog/yeUhAB3Cwb45ocd8aTcYSM9AystaOTVQqpOfbEEbRX+T1MlUqVfnIS2cn9TcQhZHQ5/2Dhaoz7AubgAFHwLF9p0FC3UhKRe6/MPFzVpOkA+tPzqV1HPE1GNXaI5/EPcXL1TZxvJUdB+hMwgjGtxZsiGg7x+are1Ppk1mqO3wLDjUmt8bdyo2dNjMm3CJ7wnJrrxl62Pp8T1hC/0Zw6KZM71Gyptt5R07Lg1+Dh2Y8kFa9/14mgmfWuHyUwNInm23PK2hv7Yf+GislrI+ri8jm3uMHL2T3tKXLlgF/aE/bWnZpq1gGZJ+NWLbHqsUhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from SG2PR06MB5430.apcprd06.prod.outlook.com (2603:1096:4:1ba::14) by TYZPR06MB6190.apcprd06.prod.outlook.com (2603:1096:400:33f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Thu, 22 Jun 2023 10:03:40 +0000 Received: from SG2PR06MB5430.apcprd06.prod.outlook.com ([fe80::d15a:aa6e:dd53:4fc5]) by SG2PR06MB5430.apcprd06.prod.outlook.com ([fe80::d15a:aa6e:dd53:4fc5%5]) with mapi id 15.20.6500.036; Thu, 22 Jun 2023 10:03:40 +0000 Message-ID: <4b4f957b-03c7-ece2-b1c1-f2aa486b6adc@siemens.com> Date: Thu, 22 Jun 2023 18:03:37 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Content-Language: en-US Subject: [PATCH, OpenACC 2.7] Adjust acc_map_data/acc_unmap_data interaction with reference counters To: gcc-patches , Thomas Schwinge , Catherine Moore X-ClientProxiedBy: TYCP286CA0039.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:29d::13) To SG2PR06MB5430.apcprd06.prod.outlook.com (2603:1096:4:1ba::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SG2PR06MB5430:EE_|TYZPR06MB6190:EE_ X-MS-Office365-Filtering-Correlation-Id: 06e4b911-dc70-447a-4d00-08db7307f455 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GE+BIXptIPNYqZCU7zhWXOuda5lNr0LGVbD4GYhda0n8ZrYU7dIbEORT0gLh+ZhqS7vr5LPfPD+oTTsIukwMwz9aQ7PC8Y2v7qRE53b/pWojwA3OopCt5igXRZS8vUhAnwDilbDbP/mIJPiAtnpbpV1TfLyx10FnOHW8WVUKUeh04c90hVbZ//QUugU/wzdE6D30KNao/Df06pgzXHB2LP34mo2QYAhQoZcrA2wD0x1BfZMsyoAs6qrV87lQ2ANyS5IJAqZB1oOFp6RZghUCIXvVrpNgjGgKESYW2DD2oxJTLP5in9UmyPsdsqXAEYxl1Z2aeMGpawg5/NA0ifygV37RZaQ2rgB7OMK5xd9Hq6lSFm484SZNouRIjuDrVFlTu1kfyjKfURIh0gMyj9Lgg/sw13aBRxbHWW7RbeUYymDY0JYxdBZ8cysGdJ3MQcVK2WvH2PihAsEFinHotdhA4NmnxGvBMq9Ezpq1icw9++GszPZqFIU7sYOn6czLPU6oRhiY1tjOLVkM9CXFnYT9OCbSwCPTMbc0qM+tKT3g2QXykTJVBLVsPO1B+QOCSm9ozUN5JXL/dwcUmvvnXqGXx4eRzTHnhsC6GNh9IBu4ACbf6vFdbrtj854nE8CnWB/6XyAgBk0xd9HNbb2sZDRnpA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SG2PR06MB5430.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(346002)(136003)(366004)(39860400002)(376002)(451199021)(8676002)(2906002)(235185007)(8936002)(5660300002)(110136005)(31686004)(316002)(41300700001)(6666004)(66946007)(66476007)(66556008)(6486002)(36756003)(33964004)(38100700002)(31696002)(186003)(86362001)(2616005)(83380400001)(478600001)(6512007)(82960400001)(26005)(6506007)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?e8+7TFw9fcPI6n44+rnxp2EwPDpp?= =?utf-8?q?Uvhy6jiVSZ6CiuYGIUEDq46w/cLx6lPiwueAieZxKeAZ4AkEfXSMdGmINylbPw980?= =?utf-8?q?g0Iht5tZ6z8P63cb0lHRNR9G01STcoaIsC1nEBFXqWTPLznVEJWf/i2x+SvAP6Ciw?= =?utf-8?q?FlDwXoQs9myxmOogzItXhxlnIGnT7fBlefSYP5PJz2hbDgeLv8vm6RqBp5U3ZV3sW?= =?utf-8?q?PBzlRV09dxMcuuwg6jK3uBRVKeq8jKvTQFPtsw/lIIc5yH87P1e8rI6rDTMmt4rJ1?= =?utf-8?q?FrPSiu9r6lvBMA+p1xusnfAZej8iG/6jOv19RZ6LtrQg2ZwuAkHDKPHPY0lJOwwyu?= =?utf-8?q?BefZVOsw5MHpoVrALEocIzWc77MQehXGHktO8azImnBrGCQCXL0bYS6aMF5gO/uOa?= =?utf-8?q?fy74eDbOMI0b0kPV5/eGZpH08KjllcjkA78g6Lo5qcbymyjcZ3VoeGoVo5r6kpMNb?= =?utf-8?q?tM0Lw4zIM06Nej14g3zSKHjdhgXLyOHf/rVBvedvL+RcKoalnclm7MiaTJ0oD7c5b?= =?utf-8?q?r0j6dlKWhrPcGkCiDh/cDA187bzWPmUmUrnHSzJ/jghDzI/VgI0ikx68n597+Vn6H?= =?utf-8?q?Bl95nIzxuSO+KQddtuIwZB8jNddndPhcJkptoGTTQ+6Z6oTdcq7Fl11JDN0BUA1tw?= =?utf-8?q?x6WHjX+Qezc2fJUPrO1kkAAsyfmGZ/r5JUJP63jHPy64NNi5uD4tTHM8IYZz2RdB5?= =?utf-8?q?EBdHTPHgmpNOk35EXMaAx9yh5xMbFP6e5jProOiGOFVyGKq5h3h38RqTsCEJE8hkf?= =?utf-8?q?Yz9LUgXlbALMi4kTcvxoiffQ5i5pe7LVRJhIwKrs9M7jmZ6vfQcgGi8PNnrcSc5nM?= =?utf-8?q?anfBodwdqfFwOJXTPXB6dOcFM6CbsFJKMQhoxFvyzLsi1iQFVxH6Z9FyZLGptLkR7?= =?utf-8?q?r0zQEBwGMOm1Wi5TNQor9C+SpPV6c2E9zXuQdy67pUQqspT++9vWXWUiV3SGHAO86?= =?utf-8?q?NdCL+W1pZdaCFrmTOXHK/Gvk+teA8DyTMr1f9zcuSNKXsXuWw5YflBaCEb97PSwSZ?= =?utf-8?q?glp4TRB2QYUKPvhU6LpnpFcunxeiiodP95hDA9tDizregD6B9uuHdno7pB6p61eUa?= =?utf-8?q?FzYRyngy6JhO0DTi/RXWYxzpx2/gwv8ihuDFyvJBf3KldHPgCxXNEGdpp3Ka0vboX?= =?utf-8?q?NElOK37M+KdksQzChhqiHwFoSIBkSyBeND9kVCNZFDKR3qwd4XV2Ue34QD5pam8nF?= =?utf-8?q?mQXRse+Dg+cTejZpj4eMa0ClJC8ocAsMuXKWX8he7ca8IA+6hjrlFyJFFt4Q8y6jS?= =?utf-8?q?SpIUoJC7hdSKe+oyA0j8XNPbgJeblZIpRkFVmybOm56APM6GXjGNLWqL5gCqtO0Iw?= =?utf-8?q?DMOsLxCEJWktfK8jR0cS5KQRlkVXkhi9WJ/EEi7WUJSqBTW6C+J37n65D5Tq2i9Pb?= =?utf-8?q?JZljZUksf34AonWmd3BmDH+PzPMBdSL7n0LBtGc6JnIYAxKFexdkCm3IUoEBddqpa?= =?utf-8?q?NWORTQclMgGhY4VpEXKXwT1QIVLwOqvVYMbdaDeCKm4UrXBXYEXnWSSyACDkESga3?= =?utf-8?q?baJabVizZIefzCbXjpaL0byj6UR3vwFFjQ=3D=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06e4b911-dc70-447a-4d00-08db7307f455 X-MS-Exchange-CrossTenant-AuthSource: SG2PR06MB5430.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2023 10:03:40.7877 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: i5VKTY1JF46wMi72ZblWH+QxgImwBFMRoC2Pfc9IJXPtzETPHuarwxYE66b82klRMI17PgqsNcILIybXpNPoWjwV3jAIzj8aPgzsa2cXv1M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB6190 X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Chung-Lin Tang via Gcc-patches From: Chung-Lin Tang Reply-To: cltang@codesourcery.com Cc: Chung-Lin Tang Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hi Thomas, This patch adjusts the implementation of acc_map_data/acc_unmap_data API library routines to more fit the description in the OpenACC 2.7 specification. Instead of using REFCOUNT_INFINITY, we now define a REFCOUNT_ACC_MAP_DATA special value to mark acc_map_data-created mappings, and allow adjustment of dynamic_refcount of such mappings by other constructs. Enforcing of an initial value of 1 for such mappings, and only allowing acc_unmap_data to delete such mappings, is implemented as specified. Actually, there is no real change (or improvement) in behavior of the API (thus no new tests) I've looked at the related OpenACC spec issues, and it seems that this part of the 2.7 spec change is mostly a clarification (see no downside in current REFCOUNT_INFINITY based implementation either). But this patch does make the internals more close to the spec description. Tested without regressions using powerpc64le-linux/nvptx, okay for trunk? Thanks, Chung-Lin 2023-06-22 Chung-Lin Tang libgomp/ChangeLog: * libgomp.h (REFCOUNT_ACC_MAP_DATA): Define as (REFCOUNT_SPECIAL | 2). * oacc-mem.c (acc_map_data): Adjust to use REFCOUNT_ACC_MAP_DATA, initialize dynamic_refcount as 1. (acc_unmap_data): Adjust to use REFCOUNT_ACC_MAP_DATA, (goacc_map_var_existing): Add REFCOUNT_ACC_MAP_DATA case. (goacc_exit_datum_1): Add REFCOUNT_ACC_MAP_DATA case, respect REFCOUNT_ACC_MAP_DATA when decrementing/finalizing. Force lowest dynamic_refcount to be 1 for REFCOUNT_ACC_MAP_DATA. * target.c (gomp_increment_refcount): Add REFCOUNT_ACC_MAP_DATA case. (gomp_decrement_refcount): Add REFCOUNT_ACC_MAP_DATA case, force lowest dynamic_refcount to be 1 for REFCOUNT_ACC_MAP_DATA. * testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c: Adjust testcase error output scan test. diff --git a/libgomp/libgomp.h b/libgomp/libgomp.h index 4d2bfab4b71..fb8ef651dfb 100644 --- a/libgomp/libgomp.h +++ b/libgomp/libgomp.h @@ -1166,6 +1166,8 @@ struct target_mem_desc; /* Special value for refcount - tgt_offset contains target address of the artificial pointer to "omp declare target link" object. */ #define REFCOUNT_LINK (REFCOUNT_SPECIAL | 1) +/* Special value for refcount - created through acc_map_data. */ +#define REFCOUNT_ACC_MAP_DATA (REFCOUNT_SPECIAL | 2) /* Special value for refcount - structure element sibling list items. All such key refounts have REFCOUNT_STRUCTELEM bits set, with _FLAG_FIRST diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c index fe632740769..2a782ac22c1 100644 --- a/libgomp/oacc-mem.c +++ b/libgomp/oacc-mem.c @@ -411,7 +411,8 @@ acc_map_data (void *h, void *d, size_t s) assert (n->refcount == 1); assert (n->dynamic_refcount == 0); /* Special reference counting behavior. */ - n->refcount = REFCOUNT_INFINITY; + n->refcount = REFCOUNT_ACC_MAP_DATA; + n->dynamic_refcount = 1; if (profiling_p) { @@ -460,7 +461,7 @@ acc_unmap_data (void *h) the different 'REFCOUNT_INFINITY' cases, or simply separate 'REFCOUNT_INFINITY' values per different usage ('REFCOUNT_ACC_MAP_DATA' etc.)? */ - else if (n->refcount != REFCOUNT_INFINITY) + else if (n->refcount != REFCOUNT_ACC_MAP_DATA) { gomp_mutex_unlock (&acc_dev->lock); gomp_fatal ("refusing to unmap block [%p,+%d] that has not been mapped" @@ -519,7 +520,8 @@ goacc_map_var_existing (struct gomp_device_descr *acc_dev, void *hostaddr, } assert (n->refcount != REFCOUNT_LINK); - if (n->refcount != REFCOUNT_INFINITY) + if (n->refcount != REFCOUNT_INFINITY + && n->refcount != REFCOUNT_ACC_MAP_DATA) n->refcount++; n->dynamic_refcount++; @@ -683,6 +685,7 @@ goacc_exit_datum_1 (struct gomp_device_descr *acc_dev, void *h, size_t s, assert (n->refcount != REFCOUNT_LINK); if (n->refcount != REFCOUNT_INFINITY + && n->refcount != REFCOUNT_ACC_MAP_DATA && n->refcount < n->dynamic_refcount) { gomp_mutex_unlock (&acc_dev->lock); @@ -691,15 +694,27 @@ goacc_exit_datum_1 (struct gomp_device_descr *acc_dev, void *h, size_t s, if (finalize) { - if (n->refcount != REFCOUNT_INFINITY) + if (n->refcount != REFCOUNT_INFINITY + && n->refcount != REFCOUNT_ACC_MAP_DATA) n->refcount -= n->dynamic_refcount; - n->dynamic_refcount = 0; + + if (n->refcount == REFCOUNT_ACC_MAP_DATA) + /* Mappings created by acc_map_data are returned to initial + dynamic_refcount of 1. Can only be deleted by acc_unmap_data. */ + n->dynamic_refcount = 1; + else + n->dynamic_refcount = 0; } else if (n->dynamic_refcount) { - if (n->refcount != REFCOUNT_INFINITY) + if (n->refcount != REFCOUNT_INFINITY + && n->refcount != REFCOUNT_ACC_MAP_DATA) n->refcount--; - n->dynamic_refcount--; + + /* When mapping is created by acc_map_data, dynamic_refcount must be + maintained at >= 1. */ + if (n->refcount != REFCOUNT_ACC_MAP_DATA || n->dynamic_refcount > 1) + n->dynamic_refcount--; } if (n->refcount == 0) diff --git a/libgomp/target.c b/libgomp/target.c index 80c25a16f1e..d3176eac344 100644 --- a/libgomp/target.c +++ b/libgomp/target.c @@ -480,7 +480,9 @@ gomp_increment_refcount (splay_tree_key k, htab_t *refcount_set) uintptr_t *refcount_ptr = &k->refcount; - if (REFCOUNT_STRUCTELEM_FIRST_P (k->refcount)) + if (k->refcount == REFCOUNT_ACC_MAP_DATA) + refcount_ptr = &k->dynamic_refcount; + else if (REFCOUNT_STRUCTELEM_FIRST_P (k->refcount)) refcount_ptr = &k->structelem_refcount; else if (REFCOUNT_STRUCTELEM_P (k->refcount)) refcount_ptr = k->structelem_refcount_ptr; @@ -527,7 +529,9 @@ gomp_decrement_refcount (splay_tree_key k, htab_t *refcount_set, bool delete_p, uintptr_t *refcount_ptr = &k->refcount; - if (REFCOUNT_STRUCTELEM_FIRST_P (k->refcount)) + if (k->refcount == REFCOUNT_ACC_MAP_DATA) + refcount_ptr = &k->dynamic_refcount; + else if (REFCOUNT_STRUCTELEM_FIRST_P (k->refcount)) refcount_ptr = &k->structelem_refcount; else if (REFCOUNT_STRUCTELEM_P (k->refcount)) refcount_ptr = k->structelem_refcount_ptr; @@ -560,6 +564,10 @@ gomp_decrement_refcount (splay_tree_key k, htab_t *refcount_set, bool delete_p, else if (*refcount_ptr > 0) *refcount_ptr -= 1; + /* Force back to 1 if this is an acc_map_data mapping. */ + if (k->refcount == REFCOUNT_ACC_MAP_DATA && *refcount_ptr == 0) + *refcount_ptr = 1; + end: if (*refcount_ptr == 0) { diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c index 872f0c1de5c..9ed9fa7e413 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c @@ -10,7 +10,7 @@ main (int argc, char *argv[]) { acc_init (acc_device_default); acc_unmap_data ((void *) foo); -/* { dg-output "libgomp: cannot unmap target block" } */ +/* { dg-output "libgomp: refusing to unmap block \\\[\[0-9a-fA-FxX\]+,\\\+64\\\] that has not been mapped by 'acc_map_data'" } */ return 0; }