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