Подходит ли LLVM для параллельных языков? - PullRequest
10 голосов
/ 14 марта 2010

Какие свойства LLVM делают его хорошим выбором для реализации (параллельного, параллельного, распределенного) языка, что делает его плохим?

Ответы [ 2 ]

16 голосов
/ 14 марта 2010

LLVM называется LLVM (низкоуровневая виртуальная машина) по уважительной причине. Это настолько низкий уровень, что вы не привязаны к какой-либо конкретной семантике для вашего исходного языка.

В LLVM есть несколько полезных вещей, облегчающих компиляцию некоторых параллельных языков, например, переход к произвольным блокам: http://llvm.org/docs/LangRef.html#blockaddress

И LLVM не подразумевает каких-либо конкретных свойств времени выполнения, не требует какой-либо конкретной реализации GC. Вы можете построить все, что хотите, поверх него.

4 голосов
/ 12 апреля 2010

Некоторые практические примеры в этом пространстве см. http://code.google.com/p/gpuocelot/. Это позволяет многоцелевому коду Cuda на x86.

...