【问题标题】:Is there one-to-one mapping of MachineFunction CFG and IR Function CFG in LLVM?LLVM 中是否存在 MachineFunction CFG 和 IR Function CFG 的一对一映射?
【发布时间】:2018-10-16 16:41:53
【问题描述】:
您可以在 LLVM IR Function 级别和 CodeGen MachineFunction 级别拥有 CFG。这是一对一的映射吗?我的意思是,在具有相似控制流的那些 CFG 中是否有相同数量的 (Machine)BasicBlocks?我知道指令的数量可能会因为明显的原因而有所不同,但我很想知道结构是否保持不变。
【问题讨论】:
标签:
compiler-construction
llvm
llvm-ir
codegen
control-flow-graph
【解决方案1】:
这是一对一的映射吗?我的意思是,是否有相同数量的
(Machine)那些具有相似控制流程的CFG中的BasicBlocks?
不存在基本块级别的一对一映射。原因之一是“PHI”节点不可能完全替换。 'SELECT' 和 'SELECT_CC' 节点的生成重构了 Machine Basic Block 表示。