Type-Safe Metaprogramming and Compilation Techniques For Designing Efficient Systems in High-Level Languages

Type-Safe Metaprogramming and Compilation Techniques For Designing Efficient Systems in High-Level Languages
复制标题

用高级语言设计高效系统的类型安全元编程和编译技术

DOI:
10.1145/1040305.1040335
复制
发表时间:
2020
影响因子:
11.1
通讯作者:
L. Parreaux
L. Parreaux
中科院分区:
综合性期刊1区
文献类型:
--
作者:
L. Parreaux

文献摘要

被引文献

相似文献

我们推出了 Rhodium,这是一种用于编写可以自动证明合理的编译器优化的新语言。与我们之前在 Cobalt 上的工作不同,Rhodium 使用由本地传播和转换规则操纵的显式数据流事实来表达优化。这种新风格允许 Rhodium 优化相互递归定义、自动组合、以流敏感和不敏感的方式解释,并在给定单独的上下文敏感策略的情况下在过程间应用,同时保持健全性。 Rhodium 还支持无限分析域,同时保证分析终止。我们为 Rhodium 实现了健全性检查器,并指定并自动证明了所有 Cobalt 优化以及 Cobalt 中无法表达的各种优化的健全性,包括 Andersen 的点分析、算术不变检测、循环归纳变量强度降低和冗余阵列负载消除。
We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit dataflow facts manipulated by local propagation and transformation rules. This new style allows Rhodium optimizations to be mutually recursively defined, to be automatically composed, to be interpreted in both flow-sensitive and -insensitive ways, and to be applied interprocedurally given a separate context-sensitivity strategy, all while retaining soundness. Rhodium also supports infinite analysis domains while guaranteeing termination of analysis. We have implemented a soundness checker for Rhodium and have specified and automatically proven the soundness of all of Cobalt's optimizations plus a variety of optimizations not expressible in Cobalt, including Andersen's points-to analysis, arithmetic-invariant detection, loop-induction-variable strength reduction, and redundant array load elimination.