Optimizing Alpha Executables on Windows NT with Spike

R. Cohn, D. Goodwin, P. G. Lowney
{"title":"Optimizing Alpha Executables on Windows NT with Spike","authors":"R. Cohn, D. Goodwin, P. G. Lowney","doi":"10.5555/293073.293077","DOIUrl":null,"url":null,"abstract":"Vol. 9 No. 4 1997 3 Spike is a performance tool developed by DIGITAL to optimize Alpha executables on the Windows NT operating system. This optimization system has two main components: the Spike Optimizer and the Spike Optimization Environment. The Spike Optimizer reads in an executable, optimizes the code, and writes out the optimized version. The Optimizer uses profile feedback from previous runs of an application to guide its optimizations. Profile feedback is not commonly used in practice because it is difficult to collect, manage, and apply profile information. The Spike Optimization Environment provides a user-transparent profile feedback system that solves most of these problems, allowing a user to easily optimize large applications composed of many executables and dynamic link libraries (DLLs). Optimizing an executable image after it has been compiled and linked has several advantages. The Spike Optimizer can see the entire image and perform interprocedural optimizations, particularly with regard to code layout. The Optimizer can use profile feedback easily, because the executable that is profiled is the same executable that is optimized; no awkward mapping of profile data back to the source language takes place. Also, Spike can be used when the sources to an application are not available, which is beneficial when DIGITAL is working with independent software vendors (ISVs) to tune applications. Applications can be loosely classified into two categories: loop-intensive programs and call-intensive programs. Conventional compiler technology is well suited to loop-intensive programs. The important loops in a program in this category are within a single procedure, which is typically the unit of compilation. The control flow is predictable, and the compiler can use simple heuristics to determine the frequently executed parts of the procedure. Spike is designed for large, call-intensive programs; it uses interprocedural optimization and profile feedback. In call-intensive programs, the important loops span multiple procedures, and the loop bodies contain procedure calls. Consequently, optimizations on the loops must be interprocedural. The control flow is Optimizing Alpha Executables on Windows NT with Spike Robert S. Cohn David W. Goodwin P. Geoffrey Lowney","PeriodicalId":253466,"journal":{"name":"Digit. Tech. J.","volume":"247 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1998-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"74","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Digit. Tech. J.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5555/293073.293077","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 74

Abstract

Vol. 9 No. 4 1997 3 Spike is a performance tool developed by DIGITAL to optimize Alpha executables on the Windows NT operating system. This optimization system has two main components: the Spike Optimizer and the Spike Optimization Environment. The Spike Optimizer reads in an executable, optimizes the code, and writes out the optimized version. The Optimizer uses profile feedback from previous runs of an application to guide its optimizations. Profile feedback is not commonly used in practice because it is difficult to collect, manage, and apply profile information. The Spike Optimization Environment provides a user-transparent profile feedback system that solves most of these problems, allowing a user to easily optimize large applications composed of many executables and dynamic link libraries (DLLs). Optimizing an executable image after it has been compiled and linked has several advantages. The Spike Optimizer can see the entire image and perform interprocedural optimizations, particularly with regard to code layout. The Optimizer can use profile feedback easily, because the executable that is profiled is the same executable that is optimized; no awkward mapping of profile data back to the source language takes place. Also, Spike can be used when the sources to an application are not available, which is beneficial when DIGITAL is working with independent software vendors (ISVs) to tune applications. Applications can be loosely classified into two categories: loop-intensive programs and call-intensive programs. Conventional compiler technology is well suited to loop-intensive programs. The important loops in a program in this category are within a single procedure, which is typically the unit of compilation. The control flow is predictable, and the compiler can use simple heuristics to determine the frequently executed parts of the procedure. Spike is designed for large, call-intensive programs; it uses interprocedural optimization and profile feedback. In call-intensive programs, the important loops span multiple procedures, and the loop bodies contain procedure calls. Consequently, optimizations on the loops must be interprocedural. The control flow is Optimizing Alpha Executables on Windows NT with Spike Robert S. Cohn David W. Goodwin P. Geoffrey Lowney
用Spike优化Windows NT上的Alpha可执行文件
3 Spike是DIGITAL开发的性能工具,用于优化Windows NT操作系统上的Alpha可执行文件。这个优化系统有两个主要组成部分:尖峰优化器和尖峰优化环境。Spike Optimizer读入可执行文件,优化代码,并写出优化后的版本。Optimizer使用来自应用程序先前运行的配置文件反馈来指导其优化。概要信息反馈在实践中并不常用,因为它很难收集、管理和应用概要信息。Spike优化环境提供了一个用户透明的配置文件反馈系统,它解决了大多数这些问题,允许用户轻松地优化由许多可执行文件和动态链接库(dll)组成的大型应用程序。在编译和链接可执行映像之后对其进行优化有几个优点。Spike Optimizer可以看到整个图像并执行过程间优化,特别是关于代码布局。优化器可以很容易地使用配置反馈,因为被分析的可执行文件与被优化的可执行文件是相同的;不会出现将配置文件数据映射回源语言的尴尬情况。此外,当应用程序的源不可用时,可以使用Spike,这在DIGITAL与独立软件供应商(isv)合作调优应用程序时是有益的。应用程序可以大致分为两类:循环密集型程序和调用密集型程序。传统的编译器技术非常适合循环密集型程序。这类程序中重要的循环位于单个过程中,该过程通常是编译单元。控制流是可预测的,编译器可以使用简单的启发式方法来确定过程中经常执行的部分。Spike专为大型、呼叫密集的程序设计;它使用程序间优化和配置文件反馈。在调用密集型程序中,重要循环跨越多个过程,循环体包含过程调用。因此,循环上的优化必须是过程间的。控制流程是与Spike Robert S. Cohn David W. Goodwin P. Geoffrey Lowney一起在Windows NT上优化Alpha可执行文件
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信