Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top