From: Aaron Watry Date: Sun, 6 Aug 2017 01:41:40 +0000 (-0500) Subject: clover/llvm: Pass device down to compile X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=106020712fa3250caafb4d42d590d366c8bd8ac9;p=mesa.git 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 Reviewed-by: Pierre Moreau Reviewed-by: Francisco Jerez --- 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 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));