summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover/llvm/invocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/clover/llvm/invocation.cpp')
-rw-r--r--src/gallium/state_trackers/clover/llvm/invocation.cpp17
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 d4c8add..a51411d 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