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

Reply via email to