Alias Verification for Fortran Code Optimization

T. Nguyen, F. Irigoin
{"title":"Alias Verification for Fortran Code Optimization","authors":"T. Nguyen, F. Irigoin","doi":"10.3217/jucs-009-03-0270","DOIUrl":null,"url":null,"abstract":"Abstract Alias analysis for Fortran is less complicated than for programming languages with pointers but many real Fortran programs violate the standard: a formal parameter or a common variable that is aliased with another formal parameter is modified. Compilers, assuming standard-conforming programs, consider that an assignment to one variable will not change the value of any other variable, allowing optimizations involving the aliased variables. Higher performance results but anything may happen: the program may appear to run normally, or may produce incorrect answers, or may behave unpredictably. The results may depend on the compiler and the optimization level. To guarantee the standard conformance of programs and to maintain the referential transparency in order to make program analyses exact and program optimizations safe, precise alias information retrieval at a reasonable cost, especially the determination of overlaps between arrays are studied in this paper. Static analyses and code instrumentation are used to find all violations of the prohibitions against aliasing in Fortran code. Alias violation tests are inserted only at places where it cannot be proved statically that they are useless in order to reduce the number of dynamic checks at run-time. A specific memory location naming technique is used to compact representation and enhance the precision of alias analysis. Modifications on the dependence graph created by aliasing are also studied to show the impact of aliases on some program optimizing transformations. Experimental results on SPEC95 benchmark are presented and some related issues are also discussed.","PeriodicalId":103108,"journal":{"name":"Journal of universal computer science (Online)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of universal computer science (Online)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3217/jucs-009-03-0270","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

Abstract Alias analysis for Fortran is less complicated than for programming languages with pointers but many real Fortran programs violate the standard: a formal parameter or a common variable that is aliased with another formal parameter is modified. Compilers, assuming standard-conforming programs, consider that an assignment to one variable will not change the value of any other variable, allowing optimizations involving the aliased variables. Higher performance results but anything may happen: the program may appear to run normally, or may produce incorrect answers, or may behave unpredictably. The results may depend on the compiler and the optimization level. To guarantee the standard conformance of programs and to maintain the referential transparency in order to make program analyses exact and program optimizations safe, precise alias information retrieval at a reasonable cost, especially the determination of overlaps between arrays are studied in this paper. Static analyses and code instrumentation are used to find all violations of the prohibitions against aliasing in Fortran code. Alias violation tests are inserted only at places where it cannot be proved statically that they are useless in order to reduce the number of dynamic checks at run-time. A specific memory location naming technique is used to compact representation and enhance the precision of alias analysis. Modifications on the dependence graph created by aliasing are also studied to show the impact of aliases on some program optimizing transformations. Experimental results on SPEC95 benchmark are presented and some related issues are also discussed.
Fortran代码优化的别名验证
Fortran的别名分析没有指针编程语言复杂,但许多Fortran程序违反了这一标准:一个形式参数或一个与另一个形式参数别名的公共变量被修改。假设符合标准的程序,编译器认为对一个变量的赋值不会改变任何其他变量的值,从而允许涉及别名变量的优化。更高的性能结果,但任何事情都可能发生:程序可能看起来正常运行,或者可能产生错误的答案,或者可能表现得不可预测。结果可能取决于编译器和优化级别。为了保证程序的标准一致性和保持参考透明度,保证程序分析的准确性和程序优化的安全性,本文研究了以合理的代价精确获取别名信息,特别是确定数组之间的重叠。静态分析和代码插装用于发现所有违反Fortran代码中禁止混叠的行为。别名冲突测试只在不能静态证明它们无用的地方插入,以减少运行时动态检查的数量。采用一种特殊的内存位置命名技术来压缩表示,提高别名分析的精度。本文还研究了对混叠生成的依赖图的修改,以说明混叠对某些程序优化转换的影响。给出了在SPEC95基准上的实验结果,并对相关问题进行了讨论。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术文献互助群
群 号:604180095
Book学术官方微信