diff mbox

[hsa,5/12] New HSA-related GCC options

Message ID 20151105215831.GH9264@virgil.suse.cz
State New
Headers show

Commit Message

Martin Jambor Nov. 5, 2015, 9:58 p.m. UTC
Hi,

the following small part of the merge deals with new options.  It adds
four independent things:

1) flag_disable_hsa is used by code in opts.c (in the first patch) to
   remember whether HSA has been explicitely disabled on the compiler
   command line.

2) -Whsa is a new warning we emit whenever we fail to produce HSAIL
   for some source code.  It is on by default but of course only
   emitted by HSAIL generating code so should never affect anybody who
   does not use HSA-enabled compiler and OpenMP 4 device constructs.

We have found the following two additions very useful for debugging on
the branch but will understand if they are not deemed suitable for
trunk and will gladly remove them:

3) -fdisable-hsa-gridification disables the gridification process to
   ease experimenting with dynamic parallelism.  With this option,
   HSAIL is always generated from the CPU-intended gimple.

4) Parameter hsa-gen-debug-stores will be obsolete once HSA run-time
   supports debugging traps.  Before that, we have to do with
   debugging stores to memory at defined places, which however can
   cost speed in benchmarks.  So they are only enabled with this
   parameter.  We decided to make it a parameter rather than a switch
   to emphasize the fact it will go away and to possibly allow us
   select different levels of verbosity of the stores in the future).

Thanks,

Martin


2015-11-05  Martin Jambor  <mjambor@suse.cz>

	* common.opt (disable_hsa): New variable.
	(-Whsa): New warning.
	(-fdisable-hsa-gridification): New option.
	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.

Comments

Joseph Myers Nov. 5, 2015, 10:48 p.m. UTC | #1
The new options need to be documented in invoke.texi.
Richard Biener Nov. 6, 2015, 8:42 a.m. UTC | #2
On Thu, 5 Nov 2015, Martin Jambor wrote:

> Hi,
> 
> the following small part of the merge deals with new options.  It adds
> four independent things:
> 
> 1) flag_disable_hsa is used by code in opts.c (in the first patch) to
>    remember whether HSA has been explicitely disabled on the compiler
>    command line.

But I don't see any way to disable it on the command line?  (no switch?)

> 2) -Whsa is a new warning we emit whenever we fail to produce HSAIL
>    for some source code.  It is on by default but of course only
>    emitted by HSAIL generating code so should never affect anybody who
>    does not use HSA-enabled compiler and OpenMP 4 device constructs.
> 
> We have found the following two additions very useful for debugging on
> the branch but will understand if they are not deemed suitable for
> trunk and will gladly remove them:
> 
> 3) -fdisable-hsa-gridification disables the gridification process to
>    ease experimenting with dynamic parallelism.  With this option,
>    HSAIL is always generated from the CPU-intended gimple.

So this sounds like sth a user should never do which means
it shouln't be a switch (but a parameter or removed).

> 4) Parameter hsa-gen-debug-stores will be obsolete once HSA run-time
>    supports debugging traps.  Before that, we have to do with
>    debugging stores to memory at defined places, which however can
>    cost speed in benchmarks.  So they are only enabled with this
>    parameter.  We decided to make it a parameter rather than a switch
>    to emphasize the fact it will go away and to possibly allow us
>    select different levels of verbosity of the stores in the future).

You miss documentation in invoke.texi for new switches and parameters.

> Thanks,
> 
> Martin
> 
> 
> 2015-11-05  Martin Jambor  <mjambor@suse.cz>
> 
> 	* common.opt (disable_hsa): New variable.
> 	(-Whsa): New warning.
> 	(-fdisable-hsa-gridification): New option.
> 	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
> 
> diff --git a/gcc/common.opt b/gcc/common.opt
> index 961a1b6..9cb52db 100644
> --- a/gcc/common.opt
> +++ b/gcc/common.opt
> @@ -223,6 +223,10 @@ unsigned int flag_sanitize_recover = SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT |
>  Variable
>  bool dump_base_name_prefixed = false
>  
> +; Flag whether HSA generation has been explicitely disabled
> +Variable
> +bool flag_disable_hsa = false
> +
>  ###
>  Driver
>  
> @@ -577,6 +581,10 @@ Wfree-nonheap-object
>  Common Var(warn_free_nonheap_object) Init(1) Warning
>  Warn when attempting to free a non-heap object.
>  
> +Whsa
> +Common Var(warn_hsa) Init(1) Warning
> +Warn when a function cannot be expanded to HSAIL.
> +
>  Winline
>  Common Var(warn_inline) Warning
>  Warn when an inlined function cannot be inlined.
> @@ -1107,6 +1115,10 @@ fdiagnostics-show-location=
>  Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
>  -fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics.
>  
> +fdisable-hsa-gridification
> +Common Report Var(flag_disable_hsa_gridification)
> +Disable HSA gridification for OMP pragmas
> +
>  ; Required for these enum values.
>  SourceInclude
>  pretty-print.h
> diff --git a/gcc/params.def b/gcc/params.def
> index c5d96e7..86911e2 100644
> --- a/gcc/params.def
> +++ b/gcc/params.def
> @@ -1177,6 +1177,11 @@ DEFPARAM (PARAM_MAX_SSA_NAME_QUERY_DEPTH,
>  	  "Maximum recursion depth allowed when querying a property of an"
>  	  " SSA name.",
>  	  2, 1, 0)
> +
> +DEFPARAM (PARAM_HSA_GEN_DEBUG_STORES,
> +	  "hsa-gen-debug-stores",
> +	  "Level of hsa debug stores verbosity",
> +	  0, 0, 1)
>  /*
>  
>  Local variables:
> 
>
diff mbox

Patch

diff --git a/gcc/common.opt b/gcc/common.opt
index 961a1b6..9cb52db 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -223,6 +223,10 @@  unsigned int flag_sanitize_recover = SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT |
 Variable
 bool dump_base_name_prefixed = false
 
+; Flag whether HSA generation has been explicitely disabled
+Variable
+bool flag_disable_hsa = false
+
 ###
 Driver
 
@@ -577,6 +581,10 @@  Wfree-nonheap-object
 Common Var(warn_free_nonheap_object) Init(1) Warning
 Warn when attempting to free a non-heap object.
 
+Whsa
+Common Var(warn_hsa) Init(1) Warning
+Warn when a function cannot be expanded to HSAIL.
+
 Winline
 Common Var(warn_inline) Warning
 Warn when an inlined function cannot be inlined.
@@ -1107,6 +1115,10 @@  fdiagnostics-show-location=
 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
 -fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics.
 
+fdisable-hsa-gridification
+Common Report Var(flag_disable_hsa_gridification)
+Disable HSA gridification for OMP pragmas
+
 ; Required for these enum values.
 SourceInclude
 pretty-print.h
diff --git a/gcc/params.def b/gcc/params.def
index c5d96e7..86911e2 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -1177,6 +1177,11 @@  DEFPARAM (PARAM_MAX_SSA_NAME_QUERY_DEPTH,
 	  "Maximum recursion depth allowed when querying a property of an"
 	  " SSA name.",
 	  2, 1, 0)
+
+DEFPARAM (PARAM_HSA_GEN_DEBUG_STORES,
+	  "hsa-gen-debug-stores",
+	  "Level of hsa debug stores verbosity",
+	  0, 0, 1)
 /*
 
 Local variables: