From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 25C463858009 for ; Thu, 12 Nov 2020 10:09:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 25C463858009 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Frederik_Harwath@mentor.com IronPort-SDR: aJVZQ/UTJL8e8DePxHJh3MCHJJTaSc0PupMJD1N2gravBpqbljKSuazhvOQXrjNjEpnd5ESEFR YTUTTsf+OnuyiUu0tjld4DgNCzpwpo0WIMAfjdPCvaq4SnNvmpz9MH25isuEmpD/6tjxwqueYA OMswCPr4BolRxfDqtZ42uMKSHMp4T2ag+UAshxa5dVbH5ppqY8yyEERn7cdmCv8I13bdd2uL1K 5MxwSFx4XM0y5xuM4mwVyp/wDj6Uexb16x6wj9prI1UmEQyW3BH2wMtySBFLzPOUDF9E3DFnDA W7c= X-IronPort-AV: E=Sophos;i="5.77,471,1596528000"; d="scan'208";a="55015803" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 12 Nov 2020 02:09:28 -0800 IronPort-SDR: 6sMq/hSf9OSlVLtzWMlVlA0JlS9Yf+ieltUJl9Mo3iWUomhiokXFL0Gjna4sFVrIyII/DyOzUY 0ai/Q34PDGmrR7N5Pj6v4WpzMx/XsyP63heWEKJAliNZaEVnW0n9NNSRlfCe+h526bufhO4Idw Pur9SsUFoW1dME6IbqD0YSJtLcY5dZ1tUFaZAMYfYxosGPRrdH7h8f4lIz/azoQxw5wRHxKMTH pXsmmuzX4sOCUPEQsjInrczEHdKlQgDBNTdvdsEGzR6IgT26cpd2i2Z+MOCbiSoGCydit4kFHj UZU= From: Frederik Harwath To: Thomas Schwinge , Tobias Burnus , Richard Biener , Subject: [PATCH 0/2] Use Graphite for OpenACC "kernels" regions Date: Thu, 12 Nov 2020 11:09:23 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-03.mgc.mentorg.com (139.181.222.3) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-List-Received-Date: Thu, 12 Nov 2020 10:09:32 -0000 Hi, the two following patches implement a new handling of the loops in OpenACC "kernels" regions which is based on Graphite and which is meant to replace the current handling based on the "parloops" pass. This extends the class of OpenACC codes using "kernels" regions that can be analysed by GCC's OpenACC implementation considerably. We would like to incorporate this work into master soon, but further work will be necessary in the next weeks to resolve some open questions, clean up the code etc. In particular, the patches cannot be applied on master currently because they rely on other patches which have not been committed to master yet, e.g. the re-ordering of the OpenACC passes to run device lowering after Graphite which has recently been submitted (subject "Move pass_oacc_device_lower after pass_graphite"), the transformation pass which converts OpenACC kernels regions to parallel regions from OG10 (commit 809ea59722263eb6c2d48402e1eed80727134038). Best regards, Frederik Frederik Harwath (2): [WIP] OpenACC: Add Graphite-based handling of "auto" loops OpenACC: Add Graphite-based "kernels" handling to pass_convert_oacc_kerne= ls gcc/c-family/c.opt | 5 +- gcc/common.opt | 8 + gcc/doc/invoke.texi | 10 +- gcc/doc/passes.texi | 6 +- gcc/flag-types.h | 1 + gcc/gimple-pretty-print.c | 3 + gcc/gimple.h | 9 +- gcc/gimplify.c | 1 + gcc/graphite-dependences.c | 12 +- gcc/graphite-isl-ast-to-gimple.c | 77 +- gcc/graphite-oacc.h | 90 ++ gcc/graphite-scop-detection.c | 828 ++++++++++++++---- gcc/graphite-sese-to-poly.c | 26 +- gcc/graphite.c | 403 ++++++++- gcc/graphite.h | 11 +- gcc/internal-fn.h | 7 +- gcc/omp-expand.c | 89 +- gcc/omp-general.c | 19 +- gcc/omp-general.h | 1 + gcc/omp-low.c | 76 +- gcc/omp-oacc-kernels.c | 59 +- gcc/omp-offload.c | 223 ++++- gcc/predict.c | 2 +- .../goacc/kernels-conversion-parloops.c | 61 ++ .../c-c++-common/goacc/kernels-conversion.c | 12 +- .../graphite/alias-0-no-runtime-check.c | 20 + .../gcc.dg/graphite/alias-0-runtime-check.c | 21 + gcc/testsuite/gcc.dg/graphite/alias-1.c | 22 + .../gfortran.dg/goacc/kernels-reductions.f90 | 37 + gcc/tree-chrec-oacc.h | 45 + gcc/tree-chrec.c | 16 +- gcc/tree-data-ref.c | 112 ++- gcc/tree-data-ref.h | 8 +- gcc/tree-loop-distribution.c | 17 +- gcc/tree-parloops.c | 16 +- gcc/tree-scalar-evolution.c | 257 +++++- gcc/tree-ssa-loop-ivcanon.c | 9 +- gcc/tree-ssa-loop-niter.c | 13 + gcc/tree-ssa-loop.c | 10 + 39 files changed, 2265 insertions(+), 377 deletions(-) create mode 100644 gcc/graphite-oacc.h create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-conversion-par= loops.c create mode 100644 gcc/testsuite/gcc.dg/graphite/alias-0-no-runtime-check.= c create mode 100644 gcc/testsuite/gcc.dg/graphite/alias-0-runtime-check.c create mode 100644 gcc/testsuite/gcc.dg/graphite/alias-1.c create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-reductions.f90 create mode 100644 gcc/tree-chrec-oacc.h -- 2.17.1 ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstra=DFe 201, 80634 M=FCnchen / G= ermany Registergericht M=FCnchen HRB 106955, Gesch=E4ftsf=FChrer: Thomas Heurung, = Alexander Walter