基于LLVM的语言中的LLVM API接口?

时间:2014-05-05 14:01:30

标签: llvm

有很多基于LLVM库的编程语言,大多数编译器/解释器也与LLVM静态链接。因此,这些语言似乎很自然地将接口暴露给内部使用的LLVM库。但是我找不到任何东西。我想要的是能够加载LLVM bitcode,修改它并将其保存回文件,但我想用一些更高级别(脚本)语言(而不是使用C ++)。例如,似乎Julia根本没有公开LLVM API,另一方面,Racket编程语言的LLVM绑定已经过时了。是否有任何基于LLVM的编程语言向程序员公开LLVM API?

1 个答案:

答案 0 :(得分:0)

llvmpy

  

llvmpy是llvm C ++库的Python包装器,允许简单访问编译器工具。它可以用于很多事情,但这里有一些想法:

     
      
  • 动态创建LLVM IR,以便与CLANG或dragonegg
  • 生成的LLVM IR进行链接   
  • 使用LLVM执行引擎动态构建机器代码
  •   
  • 与PLY或其他标记器和解析器一起使用,以Python编写完整的编译器
  •   

以及ruby-llvm

  

Ruby-LLVM是一种绑定到LLVM编译器基础结构库的Ruby语言。 LLVM允许用户为多种体系结构,代码分析器等创建即时(JIT)编译器,提前(AOT)编译器。 LLVM绑定还可以通过动态编译和加载计算密集型算法来加速Ruby代码。