如何通过JIT编译代码以跨操作系统和裸机运行?

问题描述

我正在寻找一个跨平台的面向用户的应用程序中的实时数据处理,并且我需要某种形式的动态生成代码的即时或即时编译来获得我需要的性能。我想使用相同的库为裸机微控制器生成代码,但是微控制器不需要JIT任何东西。嵌入式动态代码执行的最佳解决方案是什么?

  • 我研究了如何嵌入Clang + LLVM并即时编译生成的C代码,但无法让Clang从内存中编译C。
  • 通过wasmer
  • WebAssembly比LLVM更容易使用,但我相信它需要系统库和可执行内存。
  • 我将其嵌入C ++,但是嵌入式编译器可以使用C API以任何语言编写。
  • 性能很重要。我想进行实时处理而不会在台式机上占用超过10%的cpu时间,并且显然不会使我的微控制器过载。
  • 我可以选择一个可以在必要时运行嵌入式Linux的微控制器,只要它可以立即启动。

解决方法

我认为使用C ++ API生成和运行LLVM IR将是最好的解决方案,除非提出了其他选择。尽管代码生成可能是底层的,但它支持所有相关平台,可以交叉编译,并具有出色的性能。