[LLVMdev] Available code-generation parallelism
Luke Dalessandro
luked at cs.rochester.edu
Thu Nov 6 06:12:22 PST 2008
Jonathan Brandmeyer wrote:
> It might work for the IR construction phase, but not for optimization
> and emitting object code. The locking issue is going to be severe
> because it will be nearly (completely?) impossible to guarantee a
> globally consistent lock order for any given def/use chain. Therefore,
> such a solution would require a kind of high-level contention manager
> akin to software transactional memory (STM). Even the fastest STMs in
> research are much slower than locking. I think that there is a better
> way.
We in the TM community are always looking for "real-world" applications
that can benefit from TM for benchmarking purposes. In the past we have
found that unstructured graph and worklist algorithms are a prime
example where TM can really help.
If you can provide a reference I would be interested in looking at the
code inside LLVM for transformation/codegen passes that result in the
problems that you describe.
-Luke
> I would like to propose a different solution: Lift all internalized
> objects to be unique at the Module level instead of globally. This will
> require an initial pass to be performed (called IRFinalize?), and
> equality of Type objects by pointer comparison will not be valid until
> after this pass is complete. The Module is already the unit of
> compilation once LLVM IR has been initially emitted for most cases, and
> it should be straightfoward to structure the pass such that it can work
> on single functions if the user is compiling at that level.
>
> The IRFinalize pass can allocate the bookkeeping storage for identifying
> duplicate Constants and Types and then release it so long as none of the
> optimization and analysis passes 1) Emit new Types or 2) are broken by
> duplicate Constants.
>
> -Jonathan
>
> PS: What is RAUW? I'll volunteer the clerical work of adding it to the
> Lexicon if you'd be kind enough to hand me a small dose of clue :)
>
>> -Chris
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list