10

What properties of LLVM makes it good choice for implementation of (parallel, concurrent, distributed)-oriented language, what makes it bad?

DSblizzard
  • 4,007
  • 7
  • 48
  • 76

2 Answers2

16

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.

SK-logic
  • 9,605
  • 1
  • 23
  • 35
4

For some practical examples in this space see http://code.google.com/p/gpuocelot/. It allows Cuda code to multitarget on x86.

Steve Severance
  • 6,611
  • 1
  • 33
  • 44