Compiler construction 在LLVM jit中内联函数

Compiler construction 在LLVM jit中内联函数,compiler-construction,llvm,jit,inlining,Compiler Construction,Llvm,Jit,Inlining,我是LLVM框架和编译器领域的新手。我正在努力熟悉它。在编译器中做了一些初步阅读后,我有以下问题: 我想知道在LLVM JIT中函数内联是如何完成的。它是否与在jit编译时使用的静态内联中使用的过程相同?因为我觉得在运行时(即jit编译时)的信息在静态编译时比较好,因此可以使用一些更好的优化过程(时间上比较便宜) 我错过了什么吗??我真的很感谢你在这方面的帮助 提前谢谢。你没有遗漏任何东西。LLVM现在、过去以及未来几年可能更适合静态编译器。它在基本意义上支持JIT编译(事实上,随着MCJIT的

我是LLVM框架和编译器领域的新手。我正在努力熟悉它。在编译器中做了一些初步阅读后,我有以下问题:

我想知道在LLVM JIT中函数内联是如何完成的。它是否与在jit编译时使用的静态内联中使用的过程相同?因为我觉得在运行时(即jit编译时)的信息在静态编译时比较好,因此可以使用一些更好的优化过程(时间上比较便宜)

我错过了什么吗??我真的很感谢你在这方面的帮助


提前谢谢。

你没有遗漏任何东西。LLVM现在、过去以及未来几年可能更适合静态编译器。它在基本意义上支持JIT编译(事实上,随着MCJIT的出现,它非常好地支持JIT编译),因为您可以轻松地从IR转换到内存中的机器代码。但它不做诸如跟踪执行或开箱即用的评测之类的事情。您可以添加它们,但对修补已发出代码的支持充其量是有限的(即,您可能需要重新编译大量代码)。尽管您始终可以添加代码来收集指标,并编写自己的优化过程来利用这些指标(或者根据JIT编译器的要求进行定制),但这需要付出大量的努力。另见:(第三节;请注意,该职位已满1年)