#cranelift #data #module #object #linker #back-end #jit

无std alexcrichton-cranelift-module

支持使用 Cranelift 链接函数和数据

2 个不稳定版本

0.53.0 2020年1月10日
0.52.0 2020年1月10日

#49 in #cranelift


3 crates 中使用

Apache-2.0 WITH LLVM-exception

1.5MB
31K SLoC

此 crate 提供模块级功能,允许使用 Cranelift 将多个函数和数据一起发出,然后进行链接。

此 crate 以可选层的形式构建在 cranelift-codegen 之上。它提供了额外的功能,例如链接,但需要更高灵活性的用户不需要使用它。

Module 是一组相互链接的函数和数据对象。 Backend 是一个特质,用于定义将模块编译成各种形式的后端接口。大多数用户将使用以下 Backend 实现:

  • SimpleJITBackend,由 cranelift-simplejit 提供,将代码 JIT 到内存中进行直接执行。
  • FaerieBackend,由 cranelift-faerie 提供,生成本地对象文件。

lib.rs:

cranelift_module 的顶级 lib.rs。

依赖关系

~0.7–1.6MB
~34K SLoC