[Mesa-dev] [PATCH v4] clover: Introduce CLOVER_EXTRA_{COMPILER, LINKER}_OPTIONS
Vedran Miletić
vedran at miletic.net
Wed Sep 7 17:17:39 UTC 2016
The options specified in the CLOVER_EXTRA_COMPILER_OPTIONS shell
variable are appended to the compiler options specified by the OpenCL
program, if any.
Analogously, the options specified in the CLOVER_EXTRA_LINKER_OPTIONS
variable are appended to the linker options.
v2:
* rename to CLOVER_EXTRA_COMPILER_OPTIONS
* use debug_get_option
* append to linker options as well
v3: code cleanups
v4: separate CLOVER_EXTRA_LINKER_OPTIONS options
Signed-off-by: Vedran Miletić <vedran at miletic.net>
Reviewed-by[v1]: Edward O'Callaghan <funfunctor at folklore1984.net>
---
docs/envvars.html | 12 ++++++++++++
src/gallium/state_trackers/clover/llvm/invocation.cpp | 10 +++++++---
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/docs/envvars.html b/docs/envvars.html
index 6d79398..12f232e 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -233,6 +233,18 @@ Setting to "tgsi", for example, will print all the TGSI shaders.
See src/mesa/state_tracker/st_debug.c for other options.
</ul>
+<h3>Clover state tracker environment variables</h3>
+
+<ul>
+<li>CLOVER_EXTRA_COMPILER_OPTIONS - allows specifying additional compiler
+ options. Specified options are appended after the options set by the OpenCL
+ program.
+<li>CLOVER_EXTRA_COMPILER_OPTIONS - allows specifying additional linker
+ options. Specified options are appended after the options set by the OpenCL
+ linker.
+</ul>
+
+
<h3>Softpipe driver environment variables</h3>
<ul>
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 5490d72..0336715 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -196,11 +196,13 @@ clover::llvm::compile_program(const std::string &source,
const std::string &target,
const std::string &opts,
std::string &r_log) {
+ const std::string all_opts = opts + " " +
+ debug_get_option("CLOVER_EXTRA_COMPILER_OPTIONS", "");
if (has_flag(debug::clc))
- debug::log(".cl", "// Options: " + opts + '\n' + source);
+ debug::log(".cl", "// Options: " + all_opts + '\n' + source);
auto ctx = create_context(r_log);
- auto c = create_compiler_instance(target, tokenize(opts + " input.cl"),
+ auto c = create_compiler_instance(target, tokenize(all_opts + " input.cl"),
r_log);
auto mod = compile(*ctx, *c, "input.cl", source, headers, target, opts,
r_log);
@@ -263,7 +265,9 @@ module
clover::llvm::link_program(const std::vector<module> &modules,
enum pipe_shader_ir ir, const std::string &target,
const std::string &opts, std::string &r_log) {
- std::vector<std::string> options = tokenize(opts + " input.cl");
+ const std::string all_opts = opts + " " +
+ debug_get_option("CLOVER_EXTRA_LINKER_OPTIONS", "");
+ std::vector<std::string> options = tokenize(all_opts + " input.cl");
const bool create_library = count("-create-library", options);
erase_if(equals("-create-library"), options);
--
2.7.4
More information about the mesa-dev
mailing list