From patchwork Tue Jul 14 11:47:41 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Huber X-Patchwork-Id: 495048 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 0A1B21402BC for ; Tue, 14 Jul 2015 21:48:05 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=pOVkjWVP; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; q=dns; s=default; b=WyggOodclQku+kEGN 4QsZXzsDnZRoJrRBOwjY49TQtjrgWKFXCq+JRFhfSrOavKd6vv/z1vR1B1qefEre 51vclLNdRrDrWfTBXqnXyWUDPXuxj4MgX4+j83zD7UUuTM446PedFesXRLLgZFhq TpOZiCv8+nQXQv0D4ajNz0NKn0= 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 :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; s=default; bh=PP/S/qHwAgfrcmaMFekFFE0 t4Z8=; b=pOVkjWVP9sjsm14/DOSHfeagyr8+hxEluCyekdHGbu94VsD7kB6LWam NsQj4App2Jk6XXhPksshjVCJ1QmqPZQ94e3LgTFQcXtjVuWa3TzvW5GQWmn0WNKe Qxm6vtHN4Yk8JLzuOCUyXwxpq8+7WQ7j1LgShx1m4NG5AVBzoqBU= Received: (qmail 85644 invoked by alias); 14 Jul 2015 11:47:56 -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 85618 invoked by uid 89); 14 Jul 2015 11:47:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=4.9 required=5.0 tests=AWL, BAYES_50, FOREIGN_BODY, KAM_LAZY_DOMAIN_SECURITY, RDNS_DYNAMIC, T_FILL_THIS_FORM_SHORT autolearn=no version=3.3.2 X-HELO: mail.embedded-brains.de Received: from host-82-135-62-35.customer.m-online.net (HELO mail.embedded-brains.de) (82.135.62.35) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 14 Jul 2015 11:47:51 +0000 Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 099102A1991; Tue, 14 Jul 2015 13:48:22 +0200 (CEST) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id fiI953qU4mG4; Tue, 14 Jul 2015 13:48:19 +0200 (CEST) Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 929212A19E8; Tue, 14 Jul 2015 13:48:19 +0200 (CEST) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id cIkWpgYSjd35; Tue, 14 Jul 2015 13:48:19 +0200 (CEST) Received: from [192.168.96.129] (unknown [192.168.96.129]) by mail.embedded-brains.de (Postfix) with ESMTPSA id 70CE72A1991; Tue, 14 Jul 2015 13:48:19 +0200 (CEST) Message-ID: <55A4F6DD.5000600@embedded-brains.de> Date: Tue, 14 Jul 2015 13:47:41 +0200 From: Sebastian Huber User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Jakub Jelinek CC: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] [gomp] Recycle non-nested team if possible References: <1436786144-8625-1-git-send-email-sebastian.huber@embedded-brains.de> <20150713141721.GS1788@tucnak.redhat.com> <55A3CC4A.2000000@embedded-brains.de> <55A4B491.7000706@embedded-brains.de> <55A4B58D.6010209@embedded-brains.de> <20150714071901.GZ1788@tucnak.redhat.com> <55A4D632.2060102@embedded-brains.de> <20150714104437.GE1788@tucnak.redhat.com> In-Reply-To: <20150714104437.GE1788@tucnak.redhat.com> X-IsSubscribed: yes On 14/07/15 12:44, Jakub Jelinek wrote: > On Tue, Jul 14, 2015 at 11:28:18AM +0200, Sebastian Huber wrote: >> >If I destroy the barrier of the last team, and then initialize it later in >> >gomp_new_team() >> > >> >+static inline struct gomp_team * >> >+get_last_team (unsigned nthreads) >> >+{ >> >+ struct gomp_thread *thr = gomp_thread (); >> >+ if (thr->ts.team == NULL) >> >+ { >> >+ struct gomp_thread_pool *pool = thr->thread_pool; >> >+ if (pool != NULL) >> >+ { >> >+ struct gomp_team *last_team = pool->last_team; >> >+ if (last_team != NULL && last_team->nthreads == nthreads) >> >+ { >> >+ pool->last_team = NULL; >> >+ gomp_barrier_destroy (&last_team->barrier); >> >+ return last_team; >> >+ } >> >+ } >> >+ } >> >+ return NULL; >> >+} >> > >> >then I get test suite failures. Is it safe to destroy the team barrier here >> >or do we circumvent the last team mechanism which is supposed to delay the >> >destruction? > Then you indeed supposedly hit the reason why last_team exists. > Thus, if not reinitializing the team barrier works even with > --disable-linux-futex configured libgomp, I guess it is ok not to > destroy it and reinit it again. The gomp_barrier_reinit() is only used for the pool->threads_dock barrier, but not for the team->barrier. I already test for last_team->nthreads == nthreads, so I don't think it makes sense to reinit, which uses an atomic operation on Linux. I run the test suite on x86_64-unknown-linux-gnu with the previously mentioned asserts and got no unexpected failures. With --disable-linux-futex (without asserts) I got several failures, but none of them is related to my patch, e.g. they are of the following type /tmp/ccw4RofR.o: In function `main': data-already-3.f:(.text+0x56): undefined reference to `acc_copyin_array_h_' === libgomp tests === Schedule of variations: unix Running target unix Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target. Using /usr/share/dejagnu/config/unix.exp as generic interface file for target. Using /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/config/default.exp as tool-and-target-specific interface file. Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.c/c.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.c++/c++.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.fortran/fortran.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.graphite/graphite.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.oacc-c/c.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.oacc-c++/c++.exp ... Running /home/EB/sebastian_h/archive/gcc-git/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp ... FAIL: libgomp.oacc-fortran/acc_on_device-1-1.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-1.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/acc_on_device-1-2.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-2.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/acc_on_device-1-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-1.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-1.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-4.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-4.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-5.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-5.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-6.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-6.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/data-already-7.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/data-already-7.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-1.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-1.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-2.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-2.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-3.f -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/acc_on_device-1-1.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-1.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/acc_on_device-1-2.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-2.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/acc_on_device-1-3.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/acc_on_device-1-3.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-1.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-1.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-10.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-2.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-2.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-3.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O (test for excess errors) WARNING: libgomp.oacc-fortran/lib-3.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-4.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-5.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-6.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-7.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O0 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O1 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O2 compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-loops compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -O3 -g compilation failed to produce executable FAIL: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os (test for excess errors) WARNING: libgomp.oacc-fortran/lib-8.f90 -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -Os compilation failed to produce executable === libgomp Summary === # of expected passes 5987 # of unexpected failures 114 # of expected failures 8 # of unsupported tests 278 From 6e30dadecb5aa7f8dfb14cb0f2f4de2a56338012 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 7 Jul 2015 13:15:04 +0200 Subject: [PATCH] [gomp] Recycle last non-nested team if possible Try to recycle the last non-nested team to avoid the use of malloc() and free() in the normal case where the number of threads is the same. Avoid superfluous destruction and initialization of team synchronization objects. Using the microbenchmark posted here https://gcc.gnu.org/ml/gcc-patches/2008-03/msg00930.html shows an improvement in the parallel bench test case (target x86_64-unknown-linux-gnu, median out of 9 test runs, iteration count increased to 200000). Before the patch: parallel bench 11.2284 seconds After the patch: parallel bench 10.5912 seconds libgomp/ChangeLog 2015-07-14 Sebastian Huber * team.c (get_last_team): New. (gomp_new_team): Recycle last non-nested team if possible. (gomp_team_end): Move team work share list free lock destruction to... (free_team): ...here. --- libgomp/team.c | 50 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/libgomp/team.c b/libgomp/team.c index b98b233..4525eaf 100644 --- a/libgomp/team.c +++ b/libgomp/team.c @@ -134,6 +134,25 @@ gomp_thread_start (void *xdata) return NULL; } +static inline struct gomp_team * +get_last_team (unsigned nthreads) +{ + struct gomp_thread *thr = gomp_thread (); + if (thr->ts.team == NULL) + { + struct gomp_thread_pool *pool = thr->thread_pool; + if (pool != NULL) + { + struct gomp_team *last_team = pool->last_team; + if (last_team != NULL && last_team->nthreads == nthreads) + { + pool->last_team = NULL; + return last_team; + } + } + } + return NULL; +} /* Create a new team data structure. */ @@ -141,18 +160,27 @@ struct gomp_team * gomp_new_team (unsigned nthreads) { struct gomp_team *team; - size_t size; int i; - size = sizeof (*team) + nthreads * (sizeof (team->ordered_release[0]) - + sizeof (team->implicit_task[0])); - team = gomp_malloc (size); + team = get_last_team (nthreads); + if (team == NULL) + { + size_t extra = sizeof (team->ordered_release[0]) + + sizeof (team->implicit_task[0]); + team = gomp_malloc (sizeof (*team) + nthreads * extra); + +#ifndef HAVE_SYNC_BUILTINS + gomp_mutex_init (&team->work_share_list_free_lock); +#endif + gomp_barrier_init (&team->barrier, nthreads); + gomp_mutex_init (&team->task_lock); + + team->nthreads = nthreads; + } team->work_share_chunk = 8; #ifdef HAVE_SYNC_BUILTINS team->single_count = 0; -#else - gomp_mutex_init (&team->work_share_list_free_lock); #endif team->work_shares_to_free = &team->work_shares[0]; gomp_init_work_share (&team->work_shares[0], false, nthreads); @@ -163,14 +191,10 @@ gomp_new_team (unsigned nthreads) team->work_shares[i].next_free = &team->work_shares[i + 1]; team->work_shares[i].next_free = NULL; - team->nthreads = nthreads; - gomp_barrier_init (&team->barrier, nthreads); - gomp_sem_init (&team->master_release, 0); team->ordered_release = (void *) &team->implicit_task[nthreads]; team->ordered_release[0] = &team->master_release; - gomp_mutex_init (&team->task_lock); team->task_queue = NULL; team->task_count = 0; team->task_queued_count = 0; @@ -187,6 +211,9 @@ gomp_new_team (unsigned nthreads) static void free_team (struct gomp_team *team) { +#ifndef HAVE_SYNC_BUILTINS + gomp_mutex_destroy (&team->work_share_list_free_lock); +#endif gomp_barrier_destroy (&team->barrier); gomp_mutex_destroy (&team->task_lock); free (team); @@ -895,9 +922,6 @@ gomp_team_end (void) while (ws != NULL); } gomp_sem_destroy (&team->master_release); -#ifndef HAVE_SYNC_BUILTINS - gomp_mutex_destroy (&team->work_share_list_free_lock); -#endif if (__builtin_expect (thr->ts.team != NULL, 0) || __builtin_expect (team->nthreads == 1, 0)) -- 1.8.4.5