From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1729) id 4A15C3850206; Wed, 29 Jun 2022 14:48:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4A15C3850206 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Kwok Yeung To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-12] Fix ICE in nested-function-1.c testcase X-Act-Checkin: gcc X-Git-Author: Kwok Cheung Yeung X-Git-Refname: refs/heads/devel/omp/gcc-12 X-Git-Oldrev: 2f7ab1a1fdedb4529c964f462cb6b108caf137ae X-Git-Newrev: 024485073448e1b02d8bf0c652e3b8e196b9fefb Message-Id: <20220629144843.4A15C3850206@sourceware.org> Date: Wed, 29 Jun 2022 14:48:43 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jun 2022 14:48:43 -0000 https://gcc.gnu.org/g:024485073448e1b02d8bf0c652e3b8e196b9fefb commit 024485073448e1b02d8bf0c652e3b8e196b9fefb Author: Kwok Cheung Yeung Date: Fri May 13 16:46:36 2022 +0100 Fix ICE in nested-function-1.c testcase The ICE occurs during Gimple verification after the ompexp stage because one of the arguments to the generated builtin call is of a Gimple reg type, but isn't a Gimple value (because it is marked addressable). This appears to be fallout from the commit "OpenACC 'kernels' decomposition: Mark variables used in synthesized data clauses as addressable [PR100280]". The launch dimensions have been added to the arguments of a builtin call by oacc_set_fn_attrib, but one of the dimensions has been marked addressable. Fixed by forcing the added arguments to be re-gimplified. 2022-05-13 Kwok Cheung Yeung gcc/ * omp-expand.cc (expand_omp_target): Gimplify launch dimensions used in function call. Diff: --- gcc/ChangeLog.omp | 5 +++++ gcc/omp-expand.cc | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 1a9d3c507b5..29740139fd2 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,8 @@ +2022-05-13 Kwok Cheung Yeung + + * omp-expand.cc (expand_omp_target): Gimplify launch dimensions used + in function call. + 2022-04-14 Kwok Cheung Yeung * graphite-oacc.cc (find_oacc_tail_marks): Check that data_dep is diff --git a/gcc/omp-expand.cc b/gcc/omp-expand.cc index 1c512b385e8..f228210cc60 100644 --- a/gcc/omp-expand.cc +++ b/gcc/omp-expand.cc @@ -10274,7 +10274,15 @@ expand_omp_target (struct omp_region *region) oacc_replace_fn_attrib (child_fn, dims); } else - oacc_set_fn_attrib (child_fn, clauses, &args); + { + unsigned int args_before = args.length (); + + oacc_set_fn_attrib (child_fn, clauses, &args); + for (unsigned int ix = args_before; ix < args.length (); ix++) + args[ix] = force_gimple_operand_gsi (&gsi, args[ix], true, + NULL_TREE, true, + GSI_SAME_STMT); + } tagging = true; /* FALLTHRU */ case BUILT_IN_GOACC_ENTER_DATA: