我想知道如何在高级别上使用LLVM实现源到源的转换。考虑到LLVM将then循环转换为使用br等,我想知道如何使用特定的IR块,并以JavaScript等语言将其转换回such循环。C while loop -> LLVMIR -> JavaScript while loop
建议Emscripten将LLVM代码转换为JavaScript,因此它可能会在某个地方处理这个问题。从远处看,这似乎有点棘手,找出语句来拼凑一个从IR到while循环的语句。
我注意到LLVM C++ API有一个类,我可以在编译期间使用它来组合源文件(),但是我希望通过元数据版本号或至少在不同编译运行之间公开的接口来保证库的兼容性。LLVM中的上的许多可用信息表明,它只应用于扩展信息,而在悄悄删除时不会破坏正确性。
我不认为这会破坏交易,因为它可能是全球元数据,但最好能在这一点上获得第二条意见。我想我可以通过导入/导出接口类型以及外部函数来允许模块化编译(就像C++一样,我不把语言限制