[llvm-dev] Multi-Threading Compilers

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 20 11:11:36 PDT 2020



> On Mar 19, 2020, at 2:31 PM, Johannes Doerfert <johannesdoerfert at gmail.com> wrote:
> 
> I think addressing this issue first makes sense. I would however start
> by determining the actual impact of different design choices here. I
> mean, do we know locks will be heavily contented? If I had to guess I'd
> say most passes will not create or modify functions nor add or remove
> calls.

The problem isn’t constants or functions themselves, it is that they are instances of llvm::Value.  Everything that walks a use/def list would have to run code that checks for this, and every call to inst->setOperand() would have to do locking or conditional locking.  This would be a significant across-the-board slowdown for the compiler even when globals and constants are not involved.

-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200320/b1c82453/attachment.html>


More information about the llvm-dev mailing list