LLVM IR 是图形吗?

汉江

我正在编译器优化领域开始新的研究。首先,我正在研究几篇相关的不同论文,并遇到了一些不同的优化技术。

我目前正在研究的一个主要事情是编译器的技术,将输入源代码转换为图形(例如控制流、数据流、链表等),然后对图形执行优化并生成机器代码. 代码到图形到代码。例如,JavaScript 引擎中的 JIT 编译器,即 V8、ChakraCore 等。

然后,我遇到了 LLVM IR。由于较早的搜索,我对代码优化的印象是在上面解释的图形上进行。但是,我不相信 LLVM 是这种情况,但我不确定。我发现有一些工具可以从 LLVM IR 生成控制流图,但这并不意味着它正在优化图。

所以,我的问题是“LLVM IR 是图形吗?” 如果不是,它如何优化代码?直接代码到代码?

尤格

LLVM IR(及其后端形式,Machine IR)是传统的三地址代码 IR,因此从技术上讲,它不是图 IR,例如节点海 IR但它包含几个图结构:基本块图(控制流图)和数据依赖图(SSA def-use 链),用于简化优化。此外,在后端的指令选择阶段,原始 LLVM IR 临时转换为真实图 IR- SelectionDAG

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章