compiler-construction - LLVM 中是否存在 MachineFunction CFG 和 IR Function CFG 的一对一映射?
问题描述
您可以在 LLVM IRFunction
级别和 CodeGenMachineFunction
级别拥有 CFG。这是一对一的映射吗?我的意思是,在那些具有相似控制流的 CFG 中是否有相同数量的(Machine)BasicBlock
s?我知道指令的数量可能会因为明显的原因而有所不同,但我很想知道结构是否保持不变。
解决方案
这是一对一的映射吗?我的意思是,在那些具有相似控制流的 CFG 中是否有相同数量的(机器)基本块?
不,基本块级别没有一对一的映射。原因之一是“PHI”节点不可能完全替换。“SELECT”和“SELECT_CC”节点的生成重构了机器基本块表示。
推荐阅读
- python - 未处理异常的错误回溯消息在哪里写入 - sys.stdout 或 sys.stderr 或其他地方?(在 Python 中)
- ssh - 我的树莓派正在向我的互联网提供商基础设施发送 SSH 登录请求?
- javascript - 逆向工程 JS 监听设备方向
- c# - 如何在未经授权的情况下引发自定义异常?
- python - Kivy - 课堂上的屏幕管理
- python - python多处理中的共享变量不起作用
- excel - 如何从 Excel VBA 中的二维数组中提取百分位数?
- javascript - 单选按钮作为图像卡
- google-apps-script - 无法与自定义函数 Google App 脚本比较时间
- android - 是否可以以编程方式将新应用程序上传到 Google Play 商店?