public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: James Norris <jnorris@codesourcery.com>
Cc: Thomas Schwinge <thomas@codesourcery.com>,
	       "Joseph S. Myers" <joseph@codesourcery.com>,
	       GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [OpenACC] declare directive
Date: Fri, 06 Nov 2015 19:23:00 -0000	[thread overview]
Message-ID: <20151106192255.GH5675@tucnak.redhat.com> (raw)
In-Reply-To: <20151106190352.GG5675@tucnak.redhat.com>

On Fri, Nov 06, 2015 at 08:03:52PM +0100, Jakub Jelinek wrote:
> What exactly do you want to achieve?  Why do you record it
> in gimplify_omp_ctx, but then only look at it in gimplify_body?
> The way you abuse gimplify_omp_ctx for that is just too ugly.
> All the gimplification code expects that when you enter some OpenMP/OpenACC
> construct, you create new context if it needs one, then process the body
> of the construct, then pop it up.  The declare_returns stuff
> violates all of this.  Do you want to enqueue all the statements
> at the end of the body?  Then just stick it into some gimple_seq
> outside of the gimplify_omp_ctx, and process in there.  Or if you
> want to process it when leaving some construct, arrange for that.

If the unmap operation is supposed to sit where the corresponding variable
goes out of scope, supposedly you would need to find out in which bind
(gimplify_ctx (not omp!)) the variable is declared and arrange for the
statement to be added as a cleanup of that region.
If you queue everything to the end of function, I'm afraid with e.g.
void foo (void)
{
  {
    char buf[2048];
    #acc declare whatever(buf)
    // ...
  }
  {
    char buf2[2048];
    #acc declare whatever(buf2)
    // ...
  }
}
both vars will be assigned overlapping ranges and you might run into
trouble trying to map buf2 while buf is still mapped.

	Jakub

  reply	other threads:[~2015-11-06 19:23 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-27 20:20 James Norris
2015-10-28 16:33 ` Cesar Philippidis
2015-10-28 16:33   ` James Norris
2015-11-03 16:31 ` James Norris
2015-11-04 16:49   ` Thomas Schwinge
2015-11-04 17:12     ` James Norris
2015-11-06 16:08     ` James Norris
2015-11-06 16:16       ` James Norris
2015-11-06 19:04       ` Jakub Jelinek
2015-11-06 19:23         ` Jakub Jelinek [this message]
2015-11-06 20:18           ` James Norris
2015-11-06 20:28             ` Jakub Jelinek
2015-11-06 20:35               ` James Norris
2015-11-06 20:16         ` James Norris
2015-11-08 15:35         ` James Norris
2015-11-09 16:01           ` James Norris
2015-11-09 16:21             ` Jakub Jelinek
2015-11-09 16:31               ` James Norris
2015-11-09 23:11               ` James Norris
2015-11-11  8:32                 ` Jakub Jelinek
2015-11-11 10:08                   ` Thomas Schwinge
2015-11-11 17:29                     ` Jakub Jelinek
2015-11-12  1:08                   ` James Norris
2015-11-12  9:10                     ` Jakub Jelinek
2015-11-12 13:34                       ` James Norris
2015-11-23 12:41                         ` Thomas Schwinge
2015-11-24  8:45                           ` [gomp4] " Thomas Schwinge
2015-11-12 23:25                             ` [PATCH] Fix unused variable James Norris
2015-11-22 19:11                               ` [PATCH] fortran/openmp.c -- Fix bootstrap Steve Kargl
2015-11-22 19:27                                 ` Jerry DeLisle
2015-11-22 20:38                                 ` James Norris
2019-06-18 22:45                           ` [committed] Fix description of 'GOMP_MAP_FIRSTPRIVATE' (was: [OpenACC] declare directive) Thomas Schwinge
2019-06-18 22:21                     ` [committed] [PR90862] OpenACC 'declare' ICE when nested inside another construct " Thomas Schwinge
2015-11-06 13:48 ` [OpenACC] declare directive James Norris
2021-06-10 11:15 ` Thomas Schwinge
2015-11-02 13:46 OpenACC declare directive updates James Norris
2015-11-04 12:32 ` James Norris
2015-11-06 13:46   ` James Norris
2015-11-06 19:31   ` Jakub Jelinek
2015-11-06 19:45     ` James Norris
2015-11-06 19:49       ` Jakub Jelinek
2015-11-06 20:20         ` James Norris
2015-11-19 16:22         ` James Norris
2015-11-20 10:53           ` Jakub Jelinek
2015-11-27 11:41           ` [gomp4] " Thomas Schwinge
2019-06-18 23:02             ` [committed] [PR85221] Set 'omp declare target', 'omp declare target link' attributes for Fortran OpenACC 'declare'd variables (was: [gomp4] Re: OpenACC declare directive updates) Thomas Schwinge
2015-11-08 15:29       ` OpenACC declare directive updates James Norris
2015-11-09  2:30         ` Cesar Philippidis
2015-11-09  4:53           ` James Norris
2015-11-18 20:09             ` Cesar Philippidis
2015-11-11 19:43 [OpenACC] declare directive Dominique d'Humières

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151106192255.GH5675@tucnak.redhat.com \
    --to=jakub@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jnorris@codesourcery.com \
    --cc=joseph@codesourcery.com \
    --cc=thomas@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).