From patchwork Mon Dec 22 18:05:18 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 423471 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 533FF14009B for ; Tue, 23 Dec 2014 05:05:36 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-type; q=dns; s=default; b=FAueMSlywr7fzchK WwxvIxKIgWiR2tzqRcGbes3j36vk/1TvOf/4j5kD6TowhV1f3FU5fnhTNjw7TIv+ KzBBUy8dOMj7BUfYcmFEi0dIXBjsNp8WUs2JEuLWaaC8OrzLhxXc7djePqdrI6y8 BrKG+PVGaho95eUbX/KSkwx3ja0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-type; s=default; bh=EuhOLtBAYYvscw8ztklEEH Ol6IM=; b=rmMAg7b0ZRBTzy2RVaMWj0ciZyvI9WR2MU8NJoGUgu4Ndfu37/V4eV FghyR98rXC7PTGVsGyCZ5+nepsFGpi8qN1ize9zqfwbsbIt2ZlsKQUvq0I4ZCQ1n GEBjihwd4M2lIhIpz87v9cWIf2TtqmnUorAI9OIryToMQb6h0lveM= Received: (qmail 14433 invoked by alias); 22 Dec 2014 18:05:29 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 14423 invoked by uid 89); 22 Dec 2014 18:05:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 22 Dec 2014 18:05:27 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-FEM-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1Y37MB-0005iI-Vb from Thomas_Schwinge@mentor.com ; Mon, 22 Dec 2014 10:05:24 -0800 Received: from feldtkeller.schwinge.homeip.net (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.3.181.6; Mon, 22 Dec 2014 18:05:22 +0000 From: Thomas Schwinge To: , Jakub Jelinek CC: Julian Brown Subject: Re: [PATCH 1/5] OpenACC 2.0 support for libgomp - OpenACC runtime, NVidia PTX/CUDA plugin (repost) In-Reply-To: <20141111135323.29e0f27b@octopus> References: <20140923191931.2177e60f@octopus> <20141111135323.29e0f27b@octopus> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) Date: Mon, 22 Dec 2014 19:05:18 +0100 Message-ID: <87r3vry2zl.fsf@kepler.schwinge.homeip.net> MIME-Version: 1.0 Hi! On Tue, 11 Nov 2014 13:53:23 +0000, Julian Brown wrote: > On Tue, 23 Sep 2014 19:19:31 +0100 > Julian Brown wrote: > > This patch contains the bulk of the OpenACC 2.0 runtime support, > > building around, or on top of, the OpenMP 4.0 support (as previously > > posted or already extant upstream) where we could. [...] > > Here is a new version of the OpenACC support patch for libgomp, [...] > --- a/libgomp/libgomp_target.h > +++ b/libgomp/libgomp_target.h > +extern attribute_hidden void > +gomp_free_memmap (struct gomp_device_descr *devicep); > --- a/libgomp/target.c > +++ b/libgomp/target.c > +attribute_hidden void > +gomp_free_memmap (struct gomp_device_descr *devicep) > +{ > + struct gomp_memory_mapping *mm = &devicep->mem_map; > + > + while (mm->splay_tree.root) > + { > + struct target_mem_desc *tgt = mm->splay_tree.root->key.tgt; > + > + splay_tree_remove (&mm->splay_tree, &mm->splay_tree.root->key); > + free (tgt->array); > + free (tgt); > + } > + > + mm->is_initialized = false; > +} Committed to gomp-4_0-branch in r219025: commit 2eb33739d20c07303c42ed56db0fb925b575f33e Author: tschwinge Date: Mon Dec 22 18:04:41 2014 +0000 libgomp: gomp_free_memmap interface change. libgomp/ * libgomp.h (gomp_free_memmap): Take a pointer to a struct gomp_memory_mapping instead of a pointer to a struct gomp_device_descr. Change all users. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@219025 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgomp/ChangeLog.gomp | 4 ++++ libgomp/libgomp.h | 4 ++-- libgomp/oacc-init.c | 2 +- libgomp/target.c | 4 +--- 4 files changed, 8 insertions(+), 6 deletions(-) Grüße, Thomas diff --git libgomp/ChangeLog.gomp libgomp/ChangeLog.gomp index 4eac98c..383993d 100644 --- libgomp/ChangeLog.gomp +++ libgomp/ChangeLog.gomp @@ -1,5 +1,9 @@ 2014-12-22 Thomas Schwinge + * libgomp.h (gomp_free_memmap): Take a pointer to a struct + gomp_memory_mapping instead of a pointer to a struct + gomp_device_descr. Change all users. + * libgomp.h (struct gomp_device_descr): Move target_data member... (struct acc_dispatch_t): ... into here. Change all users. diff --git libgomp/libgomp.h libgomp/libgomp.h index ec3c52e..5897d8f 100644 --- libgomp/libgomp.h +++ libgomp/libgomp.h @@ -790,10 +790,10 @@ extern void gomp_init_device (struct gomp_device_descr *); extern void gomp_init_tables (const struct gomp_device_descr *, struct gomp_memory_mapping *); +extern void gomp_free_memmap (struct gomp_memory_mapping *); + extern void gomp_fini_device (struct gomp_device_descr *); -extern void gomp_free_memmap (struct gomp_device_descr *); - /* work.c */ extern void gomp_init_work_share (struct gomp_work_share *, bool, unsigned); diff --git libgomp/oacc-init.c libgomp/oacc-init.c index 06039b3..3867ca7 100644 --- libgomp/oacc-init.c +++ libgomp/oacc-init.c @@ -350,7 +350,7 @@ acc_shutdown_1 (acc_device_t d) walk->dev->openacc.target_data = target_data = NULL; - gomp_free_memmap (walk->dev); + gomp_free_memmap (&walk->dev->mem_map); walk->dev = NULL; } diff --git libgomp/target.c libgomp/target.c index bf719f8..788d9fb 100644 --- libgomp/target.c +++ libgomp/target.c @@ -722,10 +722,8 @@ gomp_init_dev_tables (struct gomp_device_descr *devicep) attribute_hidden void -gomp_free_memmap (struct gomp_device_descr *devicep) +gomp_free_memmap (struct gomp_memory_mapping *mm) { - struct gomp_memory_mapping *mm = &devicep->mem_map; - while (mm->splay_tree.root) { struct target_mem_desc *tgt = mm->splay_tree.root->key.tgt;