【技术实现步骤摘要】
本专利技术涉及代码多版本优化技术,特别涉及一种。
技术介绍
随着计算机体系结构和硬件技术的发展,应用程序的代码量逐年增加,其程序行为在整个执行期间变化复杂,对编译优化的要求也越来也高。优化技术可分为两类静态优化和动态优化。其中,代码多版本技术是动态优化技术的一种,在编译时为指定的程序段利用不同算法或不同优化技术生成多个版本,在运行时根据输入数据集或执行环境等选择一个最佳的版本执行。因此,代码多版本技术的优点是能够为热点代码段动态选择最合适的目标码,实现静态分析时难以解决的优化问题。然而,代码多版本技术需增加额外计算以获得执行在版本间进行选择的条件信息。在C、C++和Fortran的语言编译环境中,由指针而引发的别名信息就是代码多版本技术执行在版本间进行选择的重要条件信息。在常用的指针别名关系判断方法中是以保守的方法计算近似的别名信息,也就是说所计算的结果中,会把一些本来不是别名的表达式视为别名。这些不精确的别名分析结果会导致冗余数据依赖关系的产生,限制了版本间的切换调度以及后继优化手段的效果, 从而降低了所生成的目标码的性能,使得目标码占用过多内存,以及导致目标 ...
【技术保护点】
一种指针别名关系判断方法,其特征在于,包括:判断第一循环体在执行一次循环操作时所述第一循环体内的第一指针所指向的第一地址段偏移和第二循环体在执行相同次循环操作时第二循环体内的第二指针所指向的第二地址段偏移是否重合,所述第一循环体和第二循环体是根据待优化循环体生成的两个不同版本;判断所述第一循环体在结束上一次循环操作转入下一次循环操作时所述第一指针指向的第一地址段跨步和所述第二循环体在结束上一次循环操作转入下一次循环操作时所述第二指针指向的第二地址段跨步是否相等;以及如果上述两个判断步骤结果均为是,则确定所述第一指针和所述第二指针互为指针别名关系。
【技术特征摘要】
【专利技术属性】
技术研发人员:李中升,马晓东,尉红梅,吴佩华,顾龙,
申请(专利权)人:无锡江南计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。