【技术实现步骤摘要】
本专利技术涉及编译器的研发和优化技术,特别是涉及。
技术介绍
在现代处理器技术中,可用寄存器的数量是非常有限的,由寄存器短缺所导致的溢出问题一直都是影响性能的瓶颈之一。因此,编译器技术中很多寄存器分配相关优化技术都将溢出代码作为衡量算法好坏的标准之一。Chaitin是第一个将染色法应用在寄存器分配方面的人,他的算法将所有度数高于可用寄存器的活跃区间进行溢出。在溢出一个活跃区间时,算法会将整个区间全部溢出,这种做法会产生大量的溢出代码。因此,即使在他的算法中加入了一些优化指导策略,溢出代码多仍然是Chaitin分配算法的缺点之一。Chow专利技术了基于优先级的寄存器分配算法,他在分配之前对所有待分配的候选进行溢出代价计算,并按此进行排序,使得溢出代码尽可能的对性能影响小。所有上述优化都是选择软件算法作为解决方案。 另外,由于寄存器数量短缺,一部分变量需要进行溢出操作。它们在寄存器和内存之间进行转换,以便其他变量可以占用这些寄存器做操作。这些内存到寄存器之间的通讯操作往往会引起下列几个问题 1.新增加的通讯操作,即访存操作,会增加应用程序的执行时间。当访存操作遇到cache缺失时,会严重影响程序的性能。 2.当新增加的访存操作发生cache缺失时,引用这些数据的任务队列,如定点操作队列和乱序队列,都会发生新的堵塞。
技术实现思路
本专利技术的目的在于提供,其能够有效缓解溢出带来的负面效应,并且弥补了软件溢出优化方法中访存压力无法改善的不足。 为实现本专利技术的目的而提供的,包括下列步骤 A.计算活跃区间的溢出代价并采用插桩工具以及静态分 ...
【技术保护点】
一种使用空闲寄存器类作为快速溢出空间的优化方法,其特征在于,包括下列步骤: A.计算活跃区间的溢出代价并采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估; B.在原有寄存器分配中,为每个应用程序确定合适的访存延迟值; C.使用静态分析的结果以及新的访存延迟建立代价模型,计算使用空闲寄存器类作为快速溢出空间可能带来的收益和代价,并根据计算结果选择是否使用所述使用空闲寄存器类作为快速溢出空间的优化方法。
【技术特征摘要】
1.一种使用空闲寄存器类作为快速溢出空间的优化方法,其特征在于,包括下列步骤A.计算活跃区间的溢出代价并采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估;B.在原有寄存器分配中,为每个应用程序确定合适的访存延迟值;C.使用静态分析的结果以及新的访存延迟建立代价模型,计算使用空闲寄存器类作为快速溢出空间可能带来的收益和代价,并根据计算结果选择是否使用所述使用空闲寄存器类作为快速溢出空间的优化方法。2.根据权利要求1所述的方法,其特征在于,所述步骤A还进一步包括步骤A1.计算活跃区间的溢出代价;A2.采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估。3.根据权利要求1或2所述的方法,其特征在于,所述活跃区间,是指在程序中,每个变量拥有的自己的活跃范围。4.根据权利要求1或2所述的方法,其特征在于,所述活跃区间,是由活跃单元组成,活跃单元与候选变量活跃的基本块一一对应。5.根据权利要求4所述的方法,其特征在于,所述基本块,是由一定数量的指令组成。6.根据权利要求2所述的方法,其特征在于,所述计算活跃区间的溢出代价,包括下列步骤A11.计算每个活跃单元的溢出代价costi=(ld_cycle×ld_numexp_use+st_cycle×st_numlive_out)×freq;A12.计算每个活跃区间的溢出代价其中n是活跃单元的数量。7.根据权利要求2所述的方法,其特征在于,所述步骤A2还进一步包括步骤A21.采用gcc提供的插桩工具统计出每个应用程序的热函数;A22.分析步骤A21统计出的热函数,计算热函数中的溢出代码代价,并将其作为整个应用程序的溢出代价进行分析。8.根据权利要求7所述的方法,其特征在于,所述热函数的溢出代价,是由热函数中所有基本块的溢出代价组成。9.根就权利要求8所述的方法,其特征在于,所述基本块的溢出代价,是由所述活跃区间溢出时在此活跃区间的活跃单元需要插入的保存和恢复访存指令组成。10.根据权利要求7所述的方法,其特征在于,其中步骤A22中,所述的分析,是指根据溢出插入的访存与程序中所有访存操作的比值,判断溢出对程序造成的影响,其中,mi是基本块在第i个程序单元的数量,n是程序单元的数量。11.根据权利要求10所述的方法,其特征在于,所述比值越大,说明溢出所占访存比重较高,所述使用空闲寄存器类作为快速溢出空间的优化方法越有可能发挥较好效果。12.根据权利要求1所述的方法,其特征在于,所述步骤B还进一步包括B1.采用一级缓存命中时间来设置保存的延迟时间;B2.采用ld_cycle_cache来设置恢复的延迟时间,其中ld...
【专利技术属性】
技术研发人员:吕方,冯晓兵,杨扬,张超,王蕾,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。