From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 57477 invoked by alias); 22 Jun 2015 15:18:34 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 57467 invoked by uid 89); 22 Jun 2015 15:18:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,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 Jun 2015 15:18:32 +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 1Z73UT-0004Fw-Iv from Bernd_Schmidt@mentor.com ; Mon, 22 Jun 2015 08:18:29 -0700 Received: from [127.0.0.1] (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.3.224.2; Mon, 22 Jun 2015 16:18:26 +0100 Message-ID: <5588273C.60109@codesourcery.com> Date: Mon, 22 Jun 2015 15:33:00 -0000 From: Bernd Schmidt 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 , Julian Brown CC: Thomas Schwinge , , Nathan Sidwell Subject: Re: [gomp4] Preserve NVPTX "reconvergence" points References: <20150528150635.7bd5db23@octopus> <20150528142011.GN10247@tucnak.redhat.com> <87pp5kg3js.fsf@schwinge.name> <20150528150802.GO10247@tucnak.redhat.com> <5583E68A.9020608@codesourcery.com> <20150619122557.GO10247@tucnak.redhat.com> <20150622145549.481d4549@octopus> <20150622142456.GZ10247@tucnak.redhat.com> In-Reply-To: <20150622142456.GZ10247@tucnak.redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2015-06/txt/msg01444.txt.bz2 On 06/22/2015 04:24 PM, Jakub Jelinek wrote: > I don't understand why lowering the way you suggest helps here at all. > In the proposed scheme, you essentially have whole function > in e.g. worker-single or vector-single mode, which you need to be able to > handle properly in any case, because users can write such routines > themselves. And then you can have a loop in such a function that > has some special attribute, a hint that it is desirable to vectorize it > (for PTX the PTX way) or use vector-single mode for it in a worker-single > function. You can have a hint that it is desirable, but not a hint that it is correct (because passes in between may invalidate that). The OpenACC directives guarantee to the compiler that the program can be transformed into a parallel form. If we lose them early we must then rely on our analysis which may not be strong enough to prove that the loop can be parallelized. If we make these transformations early enough, while we still have the OpenACC directives, we can guarantee that we do exactly what the programmer specified. Bernd