summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-05-17 16:02:58 +0200
committerFrancisco Jerez <currojerez@riseup.net>2016-07-11 20:34:33 -0700
commit26fa9bfd0dfccf06358180ae740121522d09b51f (patch)
treef66981bb4264bd6404a5f3ec7c7c15f05d2932f6 /src/gallium/state_trackers/clover
parentf0721020ad6ba20110705cb1d927de09e0e25edc (diff)
downloadexternal_mesa3d-26fa9bfd0dfccf06358180ae740121522d09b51f.zip
external_mesa3d-26fa9bfd0dfccf06358180ae740121522d09b51f.tar.gz
external_mesa3d-26fa9bfd0dfccf06358180ae740121522d09b51f.tar.bz2
clover/llvm: Define function for bitcode print-out.
Reviewed-by: Serge Martin <edb+mesa@sigluy.net> Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
Diffstat (limited to 'src/gallium/state_trackers/clover')
-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