public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Jambor <mjambor@suse.cz>
To: Jakub Jelinek <jakub@redhat.com>
Cc: gcc-patches@gcc.gnu.org, Martin Liska <mliska@suse.cz>
Subject: Re: [hsa merge 07/10] IPA-HSA pass
Date: Fri, 15 Jan 2016 16:02:00 -0000	[thread overview]
Message-ID: <20160115160234.GO3982@virgil.suse.cz> (raw)
In-Reply-To: <20160115150149.GX3017@tucnak.redhat.com>

Hi,

On Fri, Jan 15, 2016 at 04:01:49PM +0100, Jakub Jelinek wrote:
> On Fri, Jan 15, 2016 at 03:53:23PM +0100, Martin Jambor wrote:
> > @@ -317,7 +319,7 @@ public:
> >  bool
> >  pass_ipa_hsa::gate (function *)
> >  {
> > -  return hsa_gen_requested_p () || in_lto_p;
> > +  return hsa_gen_requested_p ();
> >  }
> >  
> >  } // anon namespace
> 
> I actually didn't mean this, I mean more of:
>   return (hsa_gen_requested_p ()
> #ifdef ENABLE_HSA
> 	  || in_lto_p
> #endif
> 	 );
> or so.  Unless you arrange in lto-wrapper or where that if
> HSA is enabled in any LTO input source, then it is enabled also in
> lto1.  If you do that, your change is fine.
> 

This pass only creates HSA specific clones of ungridified target and
parallel regions and functions marked with declare target.  Whether or
not any HSAIL is emitted is then controlled in the hsa-gen pass gate.
The in_lto_p part was in fact a relict of a previous implementation.

So while I agree that making such a change to lto-wrapper would be
beneficial (although then we should limit its activity only to those
nodes which come from enabled units), the change above does not make
the current situation worse.  I will make sure to look into
lto-wrapper but meanwhile I still prefer the new condition.

We have tested the new change and LTO compiled code with HSA enabled
and LTO linked it with HSA disabled and:
  1) if there was no gridified loop, the result was like HSA was
     disabled from the start

  2) if there was a gridified kernel, the compiler compiled the kernel
     for the host but did not register it with libgomp and it ended up
     as an unreachable function.

How do other accelerators cope with the situation when half of the
application is compiled with the accelerator disabled?  (Would some of
their calls to GOMP_target_ext lead to abort?)

Martin

  reply	other threads:[~2016-01-15 16:02 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-13 17:55 [hsa merge 00/10] Merge of HSA branch Martin Jambor
2016-01-13 17:55 ` [hsa merge 02/10] Modifications to libgomp proper Martin Jambor
2016-01-20 13:37   ` Ilya Verbin
2016-01-20 14:48   ` Ilya Verbin
2016-01-20 14:55     ` Jakub Jelinek
2016-01-13 17:55 ` [hsa merge 07/10] IPA-HSA pass Martin Jambor
2016-01-14 12:59   ` Jakub Jelinek
2016-01-15 11:48     ` Martin Liška
2016-01-15 14:53     ` Martin Jambor
2016-01-15 15:01       ` Jakub Jelinek
2016-01-15 16:02         ` Martin Jambor [this message]
2016-01-15 16:10           ` Jakub Jelinek
2016-01-15 16:38             ` Ilya Verbin
2016-01-15 16:45               ` Jakub Jelinek
2016-01-15 18:06                 ` Ilya Verbin
2016-01-20 18:54                   ` Ilya Verbin
2016-01-21 11:39                     ` Alexander Monakov
2016-01-22 10:19                     ` Jakub Jelinek
2016-01-28 11:36                       ` Partial Offloading (was: [hsa merge 07/10] IPA-HSA pass) Thomas Schwinge
2016-02-17 16:41                         ` Ilya Verbin
2016-01-15 19:19                 ` [hsa merge 07/10] IPA-HSA pass Alexander Monakov
2016-01-15 19:32                   ` Jakub Jelinek
2016-01-15 19:46                     ` Alexander Monakov
2016-01-15 19:55                       ` Jakub Jelinek
2016-01-15  9:52   ` Jan Hubicka
2016-01-15 11:47     ` Martin Liška
2016-01-16 10:00       ` Jan Hubicka
2016-01-25 15:22         ` Martin Liška
2016-01-25 15:24           ` Jakub Jelinek
2016-01-25 23:41             ` Jan Hubicka
2016-01-27 12:38               ` Martin Liška
2016-01-13 17:55 ` [hsa merge 10/10] HSA register allocator Martin Jambor
2016-01-14 14:41   ` Jakub Jelinek
2016-01-15 15:09     ` Martin Jambor
2016-01-13 17:55 ` [hsa merge 04/10] Avoid extraneous remapping in copy_gimple_seq_and_replace_locals Martin Jambor
2016-01-13 18:02   ` Jakub Jelinek
2016-01-13 17:55 ` [hsa merge 01/10] Configury changes and new options Martin Jambor
2016-01-14 12:35   ` Jakub Jelinek
2016-02-02 12:53   ` Thomas Schwinge
2016-01-13 17:55 ` [hsa merge 06/10] Pass manager changes Martin Jambor
2016-01-14 12:52   ` Jakub Jelinek
2016-01-13 17:55 ` [hsa merge 03/10] HSA libgomp plugin Martin Jambor
2016-01-14 12:37   ` Jakub Jelinek
2016-01-13 18:11 ` [hsa merge 09/10] Majority of the HSA back-end Martin Jambor
2016-01-14 14:05   ` Jakub Jelinek
2016-01-15 15:08     ` Martin Jambor
2016-01-15 15:18       ` Jakub Jelinek
2016-01-15 23:49   ` Martin Jambor
2016-01-16  8:58     ` Jakub Jelinek
2016-01-16  9:23       ` Jakub Jelinek
2016-01-18 15:33       ` Martin Jambor
2016-01-18 15:48         ` Jakub Jelinek
2016-01-13 18:12 ` [hsa merge 08/10] HSAIL BRIG description header file Martin Jambor
2016-01-14 13:04   ` Jakub Jelinek
2016-01-15  1:19     ` Ian Lance Taylor
2016-01-15 10:03       ` Richard Biener
2016-01-15 10:14       ` Martin Jambor
2016-01-15 10:17         ` Richard Biener
2016-01-15 10:37         ` Jakub Jelinek
2016-01-15 12:03           ` Jakub Jelinek
2016-01-15 17:23             ` Martin Jambor
2016-01-16 11:43               ` Jakub Jelinek
2016-01-18 15:22                 ` Martin Jambor
2016-01-15 17:53           ` Mike Stump
2016-01-15 20:23             ` Richard Biener
2016-02-26 18:58       ` Martin Jambor
2016-02-26 19:28         ` Mike Stump
2016-01-13 18:17 ` [hsa merge 05/10] OpenMP lowering/expansion changes (gridification) Martin Jambor
2016-01-14 12:52   ` Jakub Jelinek
2016-01-15 14:52     ` Martin Jambor
2016-01-14 14:22   ` Alexander Monakov
2016-01-19 10:45 ` [hsa merge 00/10] Merge of HSA branch Martin Jambor
2016-01-19 14:25   ` Richard Biener
2016-01-21 23:10     ` Gerald Pfeifer
2016-01-27 14:20       ` Martin Jambor
2016-01-28 15:18         ` Gerald Pfeifer
2016-02-02 14:20           ` Martin Jambor

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=20160115160234.GO3982@virgil.suse.cz \
    --to=mjambor@suse.cz \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=mliska@suse.cz \
    /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).