[发明专利]指针别名关系判断方法和代码多版本优化方法有效
申请号: | 201210439950.5 | 申请日: | 2012-11-06 |
公开(公告)号: | CN102981837A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 李中升;马晓东;尉红梅;吴佩华;顾龙 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆苏华 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指针 别名 关系 判断 方法 代码 版本 优化 | ||
技术领域
本发明涉及代码多版本优化技术,特别涉及一种指针别名关系判断方法和代码多版本优化方法。
背景技术
随着计算机体系结构和硬件技术的发展,应用程序的代码量逐年增加,其程序行为在整个执行期间变化复杂,对编译优化的要求也越来也高。优化技术可分为两类:静态优化和动态优化。其中,代码多版本技术是动态优化技术的一种,在编译时为指定的程序段利用不同算法或不同优化技术生成多个版本,在运行时根据输入数据集或执行环境等选择一个最佳的版本执行。因此,代码多版本技术的优点是能够为热点代码段动态选择最合适的目标码,实现静态分析时难以解决的优化问题。
然而,代码多版本技术需增加额外计算以获得执行在版本间进行选择的条件信息。在C、C++和Fortran的语言编译环境中,由指针而引发的别名信息就是代码多版本技术执行在版本间进行选择的重要条件信息。
在常用的指针别名关系判断方法中是以保守的方法计算近似的别名信息,也就是说所计算的结果中,会把一些本来不是别名的表达式视为别名。这些不精确的别名分析结果会导致冗余数据依赖关系的产生,限制了版本间的切换调度以及后继优化手段的效果,从而降低了所生成的目标码的性能,使得目标码占用过多内存,以及导致目标码在执行时占用过大带宽,或处理速度慢。
因此需要提出一种新的指针别名关系判断方法和代码多版本优化方法,以获得更为精确的别名信息,从而增强代码动态多版本优化的优化效率。
发明内容
本发明解决的问题是提出一种新的指针别名关系判断方法和代码多版本优化方法,以获得更为精确的别名信息,从而增强代码动态多版本优化的优化效率。
为解决上述问题,本发明的实施例提供了一种指针别名关系判断方法,所述方法包括:判断第一循环体在执行一次循环操作时所述第一循环体内的第一指针所指向的第一地址段偏移和第二循环体在执行相同次循环操作时第二循环体内的第二指针所指向的第二地址段偏移是否重合,所述第一循环体和第二循环体是根据待优化循环体生成的两个不同版本;判断所述第一循环体在结束上一次循环操作转入下一次循环操作时所述第一指针指向的第一地址段跨步和所述第二循环体在结束上一次循环操作转入下一次循环操作时所述第二指针指向的第二地址段跨步是否相等;以及如果上述两个判断步骤结果均为是,则确定所述第一指针和所述第二指针互为指针别名关系。
可选地,所述待优化循环体为循环体大小大于预定标准的循环体。
可选地,所述待优化循环体为循环次数大于预定次数的循环体。
可选地,所述待优化循环体为所包含的指针信息比重大于预定比重的循环体,所述指针信息比重为所述待优化循环体中所有指针读和指针写操作所指向的位置数的总和。
可选地,判断所述第一地址段偏移和所述第二地址段偏移是否重合的方法包括:分别计算出在第一循环体执行一次循环操作时所述第一循环体内的第一指针所指向的第一地址段的上界和下界,和在第二循环体执行相同次循环操作时第二循环体内的第二指针所指向的第二地址段的上界和下界;判断所述第一地址段和第二地址段的上界和下界是否重合。
本发明的实施例还提供了一种代码多版本优化方法,所述方法包括:选择待优化的循环体;根据所述待优化循环体生成多个不同版本;生成在所述多个版本相互之间进行切换的测试条件;以及根据所述测试条件来在所述多个版本中进行切换。
可选地,生成在所述多个版本相互之间进行切换的测试条件的方法包括:判断所述多个版本之间的指针别名关系;以及根据所述指针别名关系进一步确定所述多个版本之间的选择和切换机制。
可选地,选择待优化的循环体的方法包括:选择循环体大小大于预定标准的循环体作为所述待优化循环体。
可选地,选择待优化的循环体的方法包括:选择循环次数大于预定次数的循环体作为所述待优化循环体。
可选地,选择待优化的循环体的方法包括:选择包含指针信息比重大于预定比重的循环体作为所述待优化循环体,且所述指针信息比重为所述待优化循环体中所有指针读和指针写操作所指向的位置数的总和。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210439950.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种变焦距光刻物镜系统
- 下一篇:一种天文潮和风暴潮分离方法