diff options
-rw-r--r-- | src/gallium/state_trackers/clover/llvm/invocation.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index d4c8addeea3..a51411d9df6 100644 --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -433,6 +433,14 @@ namespace { c); } + std::string + print_module_bitcode(const ::llvm::Module &mod) { + std::string s; + ::llvm::raw_string_ostream os { s }; + mod.print(os, NULL); + return os.str(); + } + std::vector<char> emit_code(::llvm::Module &mod, const target &target, TargetMachine::CodeGenFileType ft, @@ -572,13 +580,8 @@ clover::compile_program_llvm(const std::string &source, optimize(*mod, c->getCodeGenOpts().OptimizationLevel); - if (has_flag(debug::llvm)) { - std::string log; - raw_string_ostream s_log(log); - mod->print(s_log, NULL); - s_log.flush(); - debug::log(".ll", log); - } + if (has_flag(debug::llvm)) + debug::log(".ll", print_module_bitcode(*mod)); module m; // Build the clover::module |