This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [hsa merge 07/10] IPA-HSA pass
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Martin Jambor <mjambor at suse dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>, Martin Liska <mliska at suse dot cz>
- Date: Fri, 15 Jan 2016 10:52:35 +0100
- Subject: Re: [hsa merge 07/10] IPA-HSA pass
- Authentication-results: sourceware.org; auth=none
- References: <20160113173925 dot 220029649 at virgil dot suse dot cz> <20160113173925 dot 776317025 at virgil dot suse dot cz>
> 2016-01-13 Martin Liska <mliska@suse.cz>
> Martin Jambor <mjambor@suse.cz>
>
> * ipa-hsa.c: New file.
> * lto-section-in.c (lto_section_name): Add hsa section name.
> * lto-streamer.h (lto_section_type): Add hsa section.
> * lto-partition.c: Include "hsa.h"
> (add_symbol_to_partition_1): Put hsa implementations into the
> same partition as host implementations.
> * timevar.def (TV_IPA_HSA): New.
>
> diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c
> index 81a63a5..0a56170 100644
> --- a/gcc/lto/lto-partition.c
> +++ b/gcc/lto/lto-partition.c
> @@ -34,6 +34,7 @@ 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;
>
> @@ -170,6 +171,24 @@ 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 ());
> + }
> + }
Do we really need to look that up in the hsa summary? Why these can not be partitioned the
usual way?
The patch looks OK for me modulo Jakub's comments.
Honza
> }
>
> add_references_to_partition (part, node);
> diff --git a/gcc/timevar.def b/gcc/timevar.def
> index 2765179..d9a5066 100644
> --- a/gcc/timevar.def
> +++ b/gcc/timevar.def
> @@ -97,6 +97,7 @@ DEFTIMEVAR (TV_WHOPR_WPA_IO , "whopr wpa I/O")
> DEFTIMEVAR (TV_WHOPR_PARTITIONING , "whopr partitioning")
> DEFTIMEVAR (TV_WHOPR_LTRANS , "whopr ltrans")
> DEFTIMEVAR (TV_IPA_REFERENCE , "ipa reference")
> +DEFTIMEVAR (TV_IPA_HSA , "ipa HSA")
> DEFTIMEVAR (TV_IPA_PROFILE , "ipa profile")
> DEFTIMEVAR (TV_IPA_AUTOFDO , "auto profile")
> DEFTIMEVAR (TV_IPA_PURE_CONST , "ipa pure const")