1.2.2.2 图形 IR(如 控制流图 CFG) 你有没有在调试一个“明明逻辑正确、却永远进不了某条分支”的编译器后端问题时,盯着 CFG(Control Flow Graph)的 dot 输出发呆整整两小时? 有没有在优化循环时,发现 IR 显示 ,但 的定义竟来自一条被错误提升到循环外的 指令——而这条 所依赖的指针,在循环体内已被 修改过三次? 有没有在集成新前端(比如 Rust 的 MIR 或 Julia 的 SSA IR)时,把 边、 块、 调用点一股脑塞进传统 CFG 构建流程,结果整个图分裂成七块互不连通的子图,CFG 连通性检查直接报错:“ ”? 这不是玄学。这是图形 IR 在落地时最锋利也最易割手的那一面——CFG 不是静态快照,而是动态契约;