From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 36661 invoked by alias); 12 Nov 2015 14:43: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 36643 invoked by uid 89); 12 Nov 2015 14:43:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: fencepost.gnu.org Received: from fencepost.gnu.org (HELO fencepost.gnu.org) (208.118.235.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 12 Nov 2015 14:43:29 +0000 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57097) by fencepost.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1Zwt5x-0001EE-GD for gcc-patches@gnu.org; Thu, 12 Nov 2015 09:43:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zwt5s-0001PH-IV for gcc-patches@gnu.org; Thu, 12 Nov 2015 09:43:21 -0500 Received: from mail-yk0-x22d.google.com ([2607:f8b0:4002:c07::22d]:33902) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zwt5s-0001PD-DY for gcc-patches@gnu.org; Thu, 12 Nov 2015 09:43:20 -0500 Received: by ykfs79 with SMTP id s79so96927843ykf.1 for ; Thu, 12 Nov 2015 06:43:20 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.129.148.65 with SMTP id l62mr3928557ywg.263.1447339399985; Thu, 12 Nov 2015 06:43:19 -0800 (PST) Received: by 10.37.93.11 with HTTP; Thu, 12 Nov 2015 06:43:19 -0800 (PST) In-Reply-To: <5644A2B3.7050901@mentor.com> References: <5640BD31.2060602@mentor.com> <5640FB91.9000306@mentor.com> <5644A2B3.7050901@mentor.com> Date: Thu, 12 Nov 2015 14:43:00 -0000 Message-ID: Subject: Re: [PATCH, 11/16] Update testcases after adding kernels pass group From: Richard Biener To: Tom de Vries Cc: Richard Biener , "gcc-patches@gnu.org" , Jakub Jelinek Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4002:c07::22d X-IsSubscribed: yes X-SW-Source: 2015-11/txt/msg01531.txt.bz2 On Thu, Nov 12, 2015 at 3:31 PM, Tom de Vries wrote: > On 11/11/15 12:03, Richard Biener wrote: >> >> On Mon, 9 Nov 2015, Tom de Vries wrote: >> >>> On 09/11/15 16:35, Tom de Vries wrote: >>>> >>>> Hi, >>>> >>>> this patch series for stage1 trunk adds support to: >>>> - parallelize oacc kernels regions using parloops, and >>>> - map the loops onto the oacc gang dimension. >>>> >>>> The patch series contains these patches: >>>> >>>> 1 Insert new exit block only when needed in >>>> transform_to_exit_first_loop_alt >>>> 2 Make create_parallel_loop return void >>>> 3 Ignore reduction clause on kernels directive >>>> 4 Implement -foffload-alias >>>> 5 Add in_oacc_kernels_region in struct loop >>>> 6 Add pass_oacc_kernels >>>> 7 Add pass_dominator_oacc_kernels >>>> 8 Add pass_ch_oacc_kernels >>>> 9 Add pass_parallelize_loops_oacc_kernels >>>> 10 Add pass_oacc_kernels pass group in passes.def >>>> 11 Update testcases after adding kernels pass group >>>> 12 Handle acc loop directive >>>> 13 Add c-c++-common/goacc/kernels-*.c >>>> 14 Add gfortran.dg/goacc/kernels-*.f95 >>>> 15 Add libgomp.oacc-c-c++-common/kernels-*.c >>>> 16 Add libgomp.oacc-fortran/kernels-*.f95 >>>> >>>> The first 9 patches are more or less independent, but patches 10-16 are >>>> intended to be committed at the same time. >>>> >>>> Bootstrapped and reg-tested on x86_64. >>>> >>>> Build and reg-tested with nvidia accelerator, in combination with a >>>> patch that enables accelerator testing (which is submitted at >>>> https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01771.html ). >>>> >>>> I'll post the individual patches in reply to this message. >>> >>> >>> This patch updates existing testcases with new pass numbers, given the >>> passes >>> that were added in the pass list in patch 10. >> >> >> I think it would be nice to be able to specify the number in the .def >> file instead so we can avoid this kind of churn everytime we do this. > > > How about something along the lines of: > ... > /* pass_build_ealias is a dummy pass that ensures that we > execute TODO_rebuild_alias at this point. */ > NEXT_PASS (pass_build_ealias); > /* Pass group that runs when there are oacc kernels in the > function. */ > NEXT_PASS (pass_oacc_kernels); > PUSH_INSERT_PASSES_WITHIN (pass_oacc_kernels) > PUSH_ID ("oacc_kernels") > ... > POP_ID () > POP_INSERT_PASSES () > NEXT_PASS (pass_fre); > ... > > where the PUSH_ID/POP_ID pair has the functionality that all the contained > passes: > - have the id prefixed to the dump file, so the dump file of pass_ch > which normally is "ch" becomes "oacc_kernels_ch", and > - the pass name in pass_instances.def becomes pass_oacc_kernels_ch, such > that it doesn't count as numbered instance of pass_ch > ? Hmm. I'd like to have sth that allows me to add "slp" to both pass_slp_vectorize instances, having them share the suffix (as no two functions are in both dumps). We similarly have "duplicates" across the -Og vs. the -O[0-3] pipeline. Basically make all dump file name suffixes manually specified which means moving them from the class definition to the actual instance. Well, just an idea. In a distant future I like our pass pipeline to become more dynamic, getting away from a static passes.def towards, say, a pass "script" (to be able to say "if inlining did nothing skip this group" or similar). Richard. > Thanks, > - Tom