一句话:在 Coq 中形式化多面体模型到顺序代码的生成器,并证明其语义保持。
多面体模型是一种面向循环嵌套的高层中间表示,能优雅支持大量循环优化。编译器在完成多面体循环优化后,必须将多面体表示重新生成顺序或并行循环嵌套,这一过程既必要又困难。本文针对从多面体表示生成顺序代码的代码生成器,给出形式化描述并证明其语义保持性。作者在 Coq 证明助手中机器化该形式化与证明,从而为多面体编译流程中的代码生成阶段提供经过验证的保障。
The polyhedral model is a high-level intermediate representation for loop nests that supports elegantly a great many loop optimizations. In a compiler, after polyhedral loop optimizations have been performed, it is necessary and difficult to regenerate sequential or parallel loop nests before continuing compilation. This paper reports on the formalization and proof of semantic preservation of such a code generator that produces sequential code from a polyhedral representation. The formalization and proofs are mechanized using the Coq proof assistant.