summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/state_trackers/clover/llvm/invocation.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index c8c0311a3a0..2635064bec7 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -94,7 +94,7 @@ namespace {
}
std::unique_ptr<clang::CompilerInstance>
- create_compiler_instance(const target &target,
+ create_compiler_instance(const device &dev,
const std::vector<std::string> &opts,
std::string &r_log) {
std::unique_ptr<clang::CompilerInstance> c { new clang::CompilerInstance };
@@ -108,6 +108,8 @@ namespace {
const std::vector<const char *> copts =
map(std::mem_fn(&std::string::c_str), opts);
+ const target &target = dev.ir_target();
+
if (!clang::CompilerInvocation::CreateFromArgs(
c->getInvocation(), copts.data(), copts.data() + copts.size(), diag))
throw invalid_build_options_error();
@@ -208,8 +210,7 @@ clover::llvm::compile_program(const std::string &source,
debug::log(".cl", "// Options: " + opts + '\n' + source);
auto ctx = create_context(r_log);
- auto c = create_compiler_instance(dev.ir_target(),
- tokenize(opts + " input.cl"), r_log);
+ auto c = create_compiler_instance(dev, tokenize(opts + " input.cl"), r_log);
auto mod = compile(*ctx, *c, "input.cl", source, headers, dev.ir_target(),
opts, r_log);
@@ -276,7 +277,7 @@ clover::llvm::link_program(const std::vector<module> &modules,
erase_if(equals("-create-library"), options);
auto ctx = create_context(r_log);
- auto c = create_compiler_instance(dev.ir_target(), options, r_log);
+ auto c = create_compiler_instance(dev, options, r_log);
auto mod = link(*ctx, *c, modules, r_log);
optimize(*mod, c->getCodeGenOpts().OptimizationLevel, !create_library);