[LLVMdev] "Multithreaded LLVM" in "Writing an LLVM Pass"

Tobias von Koch tobias.von.koch at gmail.com
Tue Oct 9 07:23:12 PDT 2012


Hi David,

On 09/10/2012 09:02, David Chisnall wrote:
> On 9 Oct 2012, at 08:55, 陳韋任 (Wei-Ren Chen) wrote:
>
>>   No one has done it yet? From [1], it seems parallel JIT is workable.
>> Or I just misread the question?
>
> Your citation refers to a proprietary program that was presented at EuroLLVM - their changes are not upstream.  They are running multiple MCJIT instances in parallel, but they are completely independent - different modules and different LLVMContexts, and so passes are completely independent (unless they do something silly like have some mutable static variables).  This is a completely unrelated problem.

As one of the authors of that paper, I'd just like to add a few points 
here. We didn't make any changes to the LLVM code base, so the idea can 
be implemented with the standard LLVM infrastructure. But you're right, 
we are exploiting parallelism on a higher level than Lu suggested: we 
are indeed using completely separate JIT instances (of the old JIT, in 
fact) so the problem of dependences between passes doesn't occur.

Tobias





More information about the llvm-dev mailing list