LLVM 适合并行语言吗?
LLVM 的哪些特性使其成为面向(并行、并发、分布式)语言实现的良好选择,是什么让它成为不好的选择?
What properties of LLVM makes it good choice for implementation of (parallel, concurrent, distributed)-oriented language, what makes it bad?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
LLVM 被称为 LLVM(低级虚拟机)是有充分理由的。它的级别非常低,您不必受源语言的任何特定语义的约束。
LLVM 中有一些有用的东西可以使某些并行语言的编译变得更容易 - 例如,跳转到任意块: http://llvm.org/docs/LangRef.html#blockaddress
并且 LLVM 并不暗示任何特定的运行时属性,也不强制 GC 的任何特定实现。您可以在其上构建任何您想要的东西。
LLVM is called LLVM (Low Level virtual machine) for a good reason. It is so low-level that you're not bound to any particular semantics for your source language.
There are some useful things in LLVM that makes compilation of some parallel languages easier - e.g., jumps to arbitrary blocks: http://llvm.org/docs/LangRef.html#blockaddress
And LLVM does not imply any particular runtime properties, does not force any specific implementation of GC. You can build whatever you want on top of it.
有关此领域的一些实际示例,请参阅 http://code.google.com/p/gpuocelot/< /a>.它允许 Cuda 代码在 x86 上实现多目标。
For some practical examples in this space see http://code.google.com/p/gpuocelot/. It allows Cuda code to multitarget on x86.