summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Watry <[email protected]>2017-08-05 20:41:40 -0500
committerAaron Watry <[email protected]>2018-03-05 20:09:46 -0600
commit106020712fa3250caafb4d42d590d366c8bd8ac9 (patch)
tree9f9a903de5833bf829e961337ab44d05d3555270
parentfc629e359485bdac175d2c63fd4154b490094d39 (diff)
clover/llvm: Pass device down to compile
We'll need to be able to detect device version to define the appropriate __OPENCL_VERSION__ header. v2: Rebase after removing the previous patch (Pierre) - Removed "clover: Add device_clc_version to llvm::create_compiler_instance" Signed-off-by: Aaron Watry <[email protected]> Reviewed-by: Pierre Moreau <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
-rw-r--r--src/gallium/state_trackers/clover/llvm/invocation.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 2635064bec7..0bc0cccc6e7 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -145,7 +145,7 @@ namespace {
std::unique_ptr<Module>
compile(LLVMContext &ctx, clang::CompilerInstance &c,
const std::string &name, const std::string &source,
- const header_map &headers, const std::string &target,
+ const header_map &headers, const device &dev,
const std::string &opts, std::string &r_log) {
c.getFrontendOpts().ProgramAction = clang::frontend::EmitLLVMOnly;
c.getHeaderSearchOpts().UseBuiltinIncludes = true;
@@ -189,7 +189,7 @@ namespace {
// barrier() (e.g. Moving barrier() inside a conditional that is
// no executed by all threads) during its optimizaton passes.
compat::add_link_bitcode_file(c.getCodeGenOpts(),
- LIBCLC_LIBEXECDIR + target + ".bc");
+ LIBCLC_LIBEXECDIR + dev.ir_target() + ".bc");
// Compile the code
clang::EmitLLVMOnlyAction act(&ctx);
@@ -211,8 +211,7 @@ clover::llvm::compile_program(const std::string &source,
auto ctx = create_context(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);
+ auto mod = compile(*ctx, *c, "input.cl", source, headers, dev, opts, r_log);
if (has_flag(debug::llvm))
debug::log(".ll", print_module_bitcode(*mod));