是否可以在LLVM-IR的基础上实现管理多个正在运行的程序的层?
背景:我有几个小程序(应该直接用IR编码或从clang转换为IR)。它们可能在IR级别上被改变,然后应该在/为给定的架构编译并在那里运行(并行)。 应该有一个中央实例,监督个人,可能产生新的个体。应该可以进行程序间通信。
不使用IR,我可以使用c / c ++和一些特定于系统的线程/消息传递工具。
如果我理解正确,我可以将代码翻译成IR;但如果IR是目标诊断的,那么这会失败吗?如果不是这意味着应该有用于程序间通信的IR级工具......
所以我对此感到困惑。我阅读了LLVM文档,但到目前为止还没有明确说明。任何提示?
更新:
到目前为止,我发现了一种可能的(目标依赖)解决方案。 On可以使用clang解释器(jit)方法对clang中的管理层进行编码,这些方法被“jitted”,然后由管理层生成线程(例如使用pthread)。
如果我理解正确,目标特定部分将IR代码输入为外部。从这个意义上讲,IR不是平台无关的,因为来自给定clang代码的结果IR使用平台特定的包含。 使用newlib,可以获得标准clib功能作为源,适用于多个目标。 因此,使用newlib + clang,IR不是平台独立的,但是从源到最终机器代码的过程是灵活的(在可用的newlib和llvm目标中)。
右?
如何使用循环类型调度生成线程?我想这将取决于平台(例如通过使用pthread)。
右?