gpt4 book ai didi

compiler-construction - 其他有关Stalin编译器如何进行残酷优化的引用?

转载 作者:行者123 更新时间:2023-12-03 07:35:27 25 4
gpt4 key购买 nike

J.M. Siskind's research statement状态:

Stalin is an optimizing compiler for Scheme that performs whole-program static analysis and uses the results of that analysis to generate extremely efficient code. Stalin utilizes a large collection of static-analysis techniques. It performs a novel form of polyvariant flow analysis that uses iterated monovariant flow analysis to perform flow-directed splitting: cloning of specialized copies of procedures and per-call-site assignment of targets to such clones. It uses the results of flow analysis to perform life-time analysis, escape analysis, points-to analysis, and must-alias analysis. These analyses support a novel form of lightweight closure conversion that eliminates most closure slots, using techniques such as variable globalization and localization, compresses the static backchain, and usually eliminates most closures from programs. It also uses the above analyses to support flow-directed region-based storage management, where run-time garbage collection is replaced with static allocation and deallocation on a per-abstract-value and per-program-point basis. It also performs flow-directed lightweight CPS conversion, using extensions of the techniques pioneered with Screamer, to support extremely efficient first-class continuations. Finally, it supports flow-directed inlining and low-level representation selection to choose the implementation (or nonimplementation) of tags, tag checking, and tag dispatching on a per-abstract-value and per-program-point basis. This eliminates most run-time tags, tag checking, tagging, tag stripping, tag dispatching, boxing, and unboxing from programs. These analyses and optimizations allow Stalin to generate extremely efficient code that outperforms all other Scheme compilers by factors ranging between two and one hundred, particularly for numerically intensive code. Stalin often generates code that outperforms handwritten c and Fortran code.


我能够找到以下有关闭包/函数调用实现的非常有趣的论文: Flow-Directed Lightweight Closure Conversion。我还通过电子邮件发送给作者,询问有关其他主题的论文,这些主题在闭包转换论文中被提及:

Siskind, J. M. 2000a. Flow-directed lightweight CPS conversion. In preparation.

Siskind, J. M. 2000b. Flow-directed polyvariance. In preparation.

Siskind, J. M. 2000c. Flow-directed representation selection. In preparation.

Siskind, J. M. 2000d. Flow-directed storage management. In preparation


不幸的是,他从来没有写过那些论文。我对您的问题是:是否有涉及这些主题的替代或相关论文?我非常感兴趣学习Stalin(或其他编译器)如何编译诸如Scheme这样的高级语言,该方案可以进行垃圾回收,动态类型化,支持一流的功能,甚至一流的延续,都可以静态地编译为这种高效的代码。 。

最佳答案

R. Kent Dybvig's publications list

编辑:Chez Scheme的一个很好的介绍是他的ICFP presentationpaper that went along with that。一些论文专门与Scheme有关(宏,多值,连续),而另一些则适用范围更广(Register Allocation Using Lazy Saves, Eager Restores, and Greedy Shuffling)。

关于compiler-construction - 其他有关Stalin编译器如何进行残酷优化的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com