Module: Mesa Branch: master Commit: 7cc98ea88f5ec24369ba8123007637e47f093726 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7cc98ea88f5ec24369ba8123007637e47f093726
Author: Tom Stellard <[email protected]> Date: Thu May 2 18:25:53 2013 -0400 radeon/llvm: Don't use the global context when parsing LLVM IR This leads to crashes when multiple threads try to compile compute shaders in the same time. Fixes a crash in bfgminer when using more than one thread. --- src/gallium/drivers/radeon/radeon_llvm_util.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c b/src/gallium/drivers/radeon/radeon_llvm_util.c index 2582d9c..e3b0d63 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_util.c +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c @@ -34,11 +34,12 @@ LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len) { LLVMMemoryBufferRef buf; - LLVMModuleRef module = LLVMModuleCreateWithName("radeon"); + LLVMContextRef ctx = LLVMContextCreate(); + LLVMModuleRef module; buf = LLVMCreateMemoryBufferWithMemoryRangeCopy((const char*)bitcode, bitcode_len, "radeon"); - LLVMParseBitcode(buf, &module, NULL); + LLVMParseBitcodeInContext(ctx, buf, &module, NULL); return module; } _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
