[LLVMdev] Contract position for multithreaded LLVM

Chris Lattner clattner at apple.com
Fri Nov 14 09:37:51 PST 2008


Hi Everyone,

I'm looking for someone who is interested in doing contract work to  
improve LLVM's support for multithreaded compilers.  Specifically,  
we'd like to support a process with multiple threads hacking on  
*different* LLVM Module's at the same time in the same address space.  
At this point, I'm not worried about multiple threads hacking on  
different parts of a single module.

Current issues that prevent this from working include a small  
collection of global and static variables (e.g. those in  
TargetOptions.h, those in VMCore, etc) and the bigger issue of  
uniquing of Constants and Types, how this works with the LLVM IR  
operand infrastructure, and how uniqued objects are shared between  
Modules.  As part of this work, I'd expect you to build a simple test  
harness to show that it actually works (e.g. set up a harness that has  
clang parse, optimize, and codegen multiple files at a time in  
different threads).

The work should be done on the mainline LLVM tree, and will be  
structured as a milestone-based contract where payment is made as each  
milestone is achieved.

If you are interested in this, please contact me off the mailing list,  
thanks!

-Chris



More information about the llvm-dev mailing list