使用 B3 JIT 作为静态编译语言的后端

exe*_*ook 6 compiler-construction

最近我了解了B3(Bare Bones Backend),这是一个为 WebKit JavaScript 引擎创建的非常快的编译器后端。快得就像它编译得很快一样,比 LLVM(他们以前用过)快 5 倍。我现在正在开发一种 AOT 编译语言,目前可以编译为 C,但我想我会因为编译速度而使用 B3,并且因为我喜欢它的简单性,它的语义与我正在创建的语言类似,它可能比用 C 语言更容易地进行堆栈跟踪(使用#line指令、DWARF 符号信息addr2line),它将是跨平台的(至少声称是 x64 和 ARM)。但是我才开始学习B3,有人可以讨论一下这个后端是否可以用于编译语言吗?我意识到它是在考虑 JIT 的情况下制作的,但它会生成机器代码,对吗?必须做哪些工作才能将生成的代码保存到目标文件中然后进行链接?如果可以的话,如何开始呢?