This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [hsa merge 07/10] IPA-HSA pass


> 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")


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]