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: