diff options
author | José Fonseca <[email protected]> | 2014-05-14 12:20:14 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2014-05-23 11:37:47 +0100 |
commit | 2c02f34fccee563e22db70cbfb03fb2cc7da30f9 (patch) | |
tree | 41a7340cdbf4fd9376b8eacec74bfa3cd7983e44 /src/gallium | |
parent | 94dbc16dc4c1b7685a9dab89a39e8fea844194df (diff) |
gallivm: Support MCJIT on Windows.
It works fine, though it requires using ELF objects.
With this change there is nothing preventing us to switch exclusively
to MCJIT, everywhere. It's still off though.
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index d03680fc67d..d1cc9b67b6c 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -57,6 +57,7 @@ #include <llvm/ADT/Triple.h> #include <llvm/ExecutionEngine/JITMemoryManager.h> #include <llvm/Support/CommandLine.h> +#include <llvm/Support/Host.h> #include <llvm/Support/PrettyStackTrace.h> #include <llvm/Support/TargetSelect.h> @@ -452,6 +453,14 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, if (useMCJIT) { builder.setUseMCJIT(true); +#ifdef _WIN32 + /* + * MCJIT works on Windows, but currently only through ELF object format. + */ + std::string targetTriple = llvm::sys::getProcessTriple(); + targetTriple.append("-elf"); + unwrap(M)->setTargetTriple(targetTriple); +#endif } llvm::SmallVector<std::string, 1> MAttrs; |