HJL*_*HJL 2 llvm compiler-optimization llvm-ir
我正在开始编译器优化领域的新研究。首先,我正在研究几篇相关的不同论文,并遇到了一些不同的优化技术。
我目前正在研究的一件主要事情是编译器的技术,它将输入源代码转换为图形(例如控制流、数据流、链表等),然后对图形执行优化并生成机器代码。代码到图形到代码。例如,JavaScript引擎中的JIT编译器,即V8、ChakraCore等。
然后,我遇到了 LLVM IR。由于之前的搜索,我对代码优化的印象是在上面解释的图表上进行的。然而,我不认为 LLVM 是这种情况,但我也不确定。我发现有一些工具可以从 LLVM IR 生成控制流图,但这并不意味着它正在优化该图。
所以,我的问题是“LLVM IR 是图表吗?” 如果不是,它如何优化代码?直接代码到代码?
LLVM IR(及其后端形式,机器 IR)是传统的三地址代码 IR,因此从技术上讲,它不是某种意义上的图 IR,例如节点海 IR。但它包含几个图结构:基本块图(控制流图)和数据依赖图(SSA def-use 链),用于简化优化。此外,在后端的指令选择阶段,原始 LLVM IR 会暂时转换为真实的图 IR - SelectionDAG。
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |