Multithreading LLVM-IR,进程间通信,管理层

Multithreading LLVM-IR,进程间通信,管理层,multithreading,llvm,jit,newlib,Multithreading,Llvm,Jit,Newlib,是否可以在LLVM-IR的基础上实现一个管理多个运行程序的层 背景:我有几个小程序,应该直接用IR编码,或者从clang转换成IR。它们可能会在IR级别上被修改,然后应该在给定的体系结构上编译,并在那里并行运行。 应该有一个中心实例来监督个体,可能会产生新的个体。程序间通信应该是可能的 不使用IR,我可以使用c/c++和一些特定于系统的线程/消息传递工具 如果我理解正确,我可以将代码翻译成IR;但如果IR是目标认知的,这不会失败吗?如果不是,这意味着应该有IR级别的工具用于程序间通信 所以我对此

是否可以在LLVM-IR的基础上实现一个管理多个运行程序的层

背景:我有几个小程序,应该直接用IR编码,或者从clang转换成IR。它们可能会在IR级别上被修改,然后应该在给定的体系结构上编译,并在那里并行运行。 应该有一个中心实例来监督个体,可能会产生新的个体。程序间通信应该是可能的

不使用IR,我可以使用c/c++和一些特定于系统的线程/消息传递工具

如果我理解正确,我可以将代码翻译成IR;但如果IR是目标认知的,这不会失败吗?如果不是,这意味着应该有IR级别的工具用于程序间通信

所以我对此感到困惑。我通读了LLVM文档,但到目前为止还没有弄清楚。有什么提示吗

更新:

到目前为止,我找到了一个可能的依赖于目标的解决方案。 On可以用clang对管理层进行编码,使用clang解释器jit方法处理“jit”后生成为线程的个体,例如管理层使用pthread

如果我理解正确,特定于目标的部分将作为外部输入IR代码。从这个意义上说,IR不是平台不可知的,因为来自给定clang代码的结果IR使用了特定于平台的Include。 使用newlib,可以获得标准的clib功能作为源,适用于多个目标。 因此,使用newlib+clang,IR不是独立于平台的,但是从源代码到最终机器代码的过程在可用的newlib和llvm目标中是灵活的

对吧?

使用循环类型调度生成线程怎么样?我猜这将取决于平台,例如通过使用pthread


对吧?

要在一台真正的机器上管理任何东西,您必须在其上连接系统接口。因此,您将需要相当数量的本机、特定于平台的代码来实现这一点,尽管还有其他考虑因素。