options.JITEmitDebugInfo = true;
#endif
-#if defined(DEBUG) || defined(PROFILE)
+ /* XXX: Workaround http://llvm.org/PR21435 */
+#if defined(DEBUG) || defined(PROFILE) || \
+ (HAVE_LLVM >= 0x0303 && (defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)))
#if HAVE_LLVM < 0x0304
options.NoFramePointerElimNonLeaf = true;
#endif
builder.setMCPU(MCPU);
#endif
- ShaderMemoryManager *MM;
+ ShaderMemoryManager *MM = NULL;
if (useMCJIT) {
+#if HAVE_LLVM > 0x0303
BaseMemoryManager* JMM = reinterpret_cast<BaseMemoryManager*>(CMM);
MM = new ShaderMemoryManager(JMM);
*OutCode = MM->getGeneratedCode();
+#if HAVE_LLVM >= 0x0306
+ builder.setMCJITMemoryManager(std::unique_ptr<RTDyldMemoryManager>(MM));
+#else
builder.setMCJITMemoryManager(MM);
+#endif
+#endif
} else {
#if HAVE_LLVM < 0x0306
BaseMemoryManager* JMM = reinterpret_cast<BaseMemoryManager*>(CMM);