Message ID | 56A63D8E.4070907@suse.cz |
---|---|
State | New |
Headers | show |
On Mon, Jan 25, 2016 at 04:21:50PM +0100, Martin Liška wrote: > On 01/16/2016 11:00 AM, Jan Hubicka wrote: > > Can't it be represented via explicit REF_ADDR or something like that? > > > > Honza > > Hi. > > Sure, I've just done a patch that can do that. However, as we're currently in stage4, > that change would probably require explicit permission of a release manager? If Honza is fine with it and you've tested it, this is ok for trunk. > >From 9639fff94d043c55b55bfb12bb086032db565f0a Mon Sep 17 00:00:00 2001 > From: marxin <mliska@suse.cz> > Date: Mon, 25 Jan 2016 16:11:00 +0100 > Subject: [PATCH] HSA: simplify partitioning of HSA kernels and host impls. > > gcc/lto/ChangeLog: > > 2016-01-25 Martin Liska <mliska@suse.cz> > > * lto-partition.c (add_symbol_to_partition_1): Remove usage > of hsa_summaries. > > gcc/ChangeLog: > > 2016-01-25 Martin Liska <mliska@suse.cz> > > * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR > reference for an HSA kernel and its host function. > --- > gcc/hsa.c | 5 +++++ > gcc/lto/lto-partition.c | 19 ------------------- > 2 files changed, 5 insertions(+), 19 deletions(-) > > diff --git a/gcc/hsa.c b/gcc/hsa.c > index ec23f81..f0b3205 100644 > --- a/gcc/hsa.c > +++ b/gcc/hsa.c > @@ -781,6 +781,11 @@ hsa_summary_t::link_functions (cgraph_node *gpu, cgraph_node *host, > TREE_OPTIMIZATION (fn_opts)->x_flag_tree_loop_vectorize = false; > TREE_OPTIMIZATION (fn_opts)->x_flag_tree_slp_vectorize = false; > DECL_FUNCTION_SPECIFIC_OPTIMIZATION (gdecl) = fn_opts; > + > + /* Create reference between a kernel and a corresponding host implementation > + to quarantee LTO streaming to a same LTRANS. */ > + if (kind == HSA_KERNEL) > + gpu->create_reference (host, IPA_REF_ADDR); > } > > /* Add a HOST function to HSA summaries. */ > diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c > index eb28fed..9eb63c2 100644 > --- a/gcc/lto/lto-partition.c > +++ b/gcc/lto/lto-partition.c > @@ -34,7 +34,6 @@ along with GCC; see the file COPYING3. If not see > #include "ipa-prop.h" > #include "ipa-inline.h" > #include "lto-partition.h" > -#include "hsa.h" > > vec<ltrans_partition> ltrans_partitions; > > @@ -171,24 +170,6 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) > Therefore put it into the same partition. */ > if (cnode->instrumented_version) > add_symbol_to_partition_1 (part, cnode->instrumented_version); > - > - /* Add an HSA associated with the symbol. */ > - if (hsa_summaries != NULL) > - { > - hsa_function_summary *s = hsa_summaries->get (cnode); > - if (s->m_kind == HSA_KERNEL) > - { > - /* Add binded function. */ > - bool added = add_symbol_to_partition_1 (part, > - s->m_binded_function); > - gcc_assert (added); > - if (symtab->dump_file) > - fprintf (symtab->dump_file, > - "adding an HSA function (host/gpu) to the " > - "partition: %s\n", > - s->m_binded_function->name ()); > - } > - } > } > > add_references_to_partition (part, node); > -- > 2.7.0 > Jakub
> On Mon, Jan 25, 2016 at 04:21:50PM +0100, Martin Liška wrote: > > On 01/16/2016 11:00 AM, Jan Hubicka wrote: > > > Can't it be represented via explicit REF_ADDR or something like that? > > > > > > Honza > > > > Hi. > > > > Sure, I've just done a patch that can do that. However, as we're currently in stage4, > > that change would probably require explicit permission of a release manager? > > If Honza is fine with it and you've tested it, this is ok for trunk. It looks fine to me. Honza
On 01/26/2016 12:41 AM, Jan Hubicka wrote: >> On Mon, Jan 25, 2016 at 04:21:50PM +0100, Martin Liška wrote: >>> On 01/16/2016 11:00 AM, Jan Hubicka wrote: >>>> Can't it be represented via explicit REF_ADDR or something like that? >>>> >>>> Honza >>> >>> Hi. >>> >>> Sure, I've just done a patch that can do that. However, as we're currently in stage4, >>> that change would probably require explicit permission of a release manager? >> >> If Honza is fine with it and you've tested it, this is ok for trunk. > > It looks fine to me. > > Honza > I've just bootregtested the patch on x86_64-linux-pc and I'm going to install it to trunk. Martin
From 9639fff94d043c55b55bfb12bb086032db565f0a Mon Sep 17 00:00:00 2001 From: marxin <mliska@suse.cz> Date: Mon, 25 Jan 2016 16:11:00 +0100 Subject: [PATCH] HSA: simplify partitioning of HSA kernels and host impls. gcc/lto/ChangeLog: 2016-01-25 Martin Liska <mliska@suse.cz> * lto-partition.c (add_symbol_to_partition_1): Remove usage of hsa_summaries. gcc/ChangeLog: 2016-01-25 Martin Liska <mliska@suse.cz> * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR reference for an HSA kernel and its host function. --- gcc/hsa.c | 5 +++++ gcc/lto/lto-partition.c | 19 ------------------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/gcc/hsa.c b/gcc/hsa.c index ec23f81..f0b3205 100644 --- a/gcc/hsa.c +++ b/gcc/hsa.c @@ -781,6 +781,11 @@ hsa_summary_t::link_functions (cgraph_node *gpu, cgraph_node *host, TREE_OPTIMIZATION (fn_opts)->x_flag_tree_loop_vectorize = false; TREE_OPTIMIZATION (fn_opts)->x_flag_tree_slp_vectorize = false; DECL_FUNCTION_SPECIFIC_OPTIMIZATION (gdecl) = fn_opts; + + /* Create reference between a kernel and a corresponding host implementation + to quarantee LTO streaming to a same LTRANS. */ + if (kind == HSA_KERNEL) + gpu->create_reference (host, IPA_REF_ADDR); } /* Add a HOST function to HSA summaries. */ diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index eb28fed..9eb63c2 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -34,7 +34,6 @@ along with GCC; see the file COPYING3. If not see #include "ipa-prop.h" #include "ipa-inline.h" #include "lto-partition.h" -#include "hsa.h" vec<ltrans_partition> ltrans_partitions; @@ -171,24 +170,6 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) Therefore put it into the same partition. */ if (cnode->instrumented_version) add_symbol_to_partition_1 (part, cnode->instrumented_version); - - /* Add an HSA associated with the symbol. */ - if (hsa_summaries != NULL) - { - hsa_function_summary *s = hsa_summaries->get (cnode); - if (s->m_kind == HSA_KERNEL) - { - /* Add binded function. */ - bool added = add_symbol_to_partition_1 (part, - s->m_binded_function); - gcc_assert (added); - if (symtab->dump_file) - fprintf (symtab->dump_file, - "adding an HSA function (host/gpu) to the " - "partition: %s\n", - s->m_binded_function->name ()); - } - } } add_references_to_partition (part, node); -- 2.7.0