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  <mjam...@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:

Reply via email to