[发明专利]一种消除冗余的内存访问操作的编译优化方法有效
申请号: | 201410129958.0 | 申请日: | 2014-04-02 |
公开(公告)号: | CN103942082B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 杨磊;王萍;肖东岳;韩峰;胡可 | 申请(专利权)人: | 南阳理工学院 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 郑州红元帅专利代理事务所(普通合伙)41117 | 代理人: | 秦舜生 |
地址: | 473000*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种消除冗余的内存访问操作的编译优化方法,用于别名信息不精确且访存采用Load/Store架构的系统中,是基于轻量的数据流分析方法,在代码生成阶段,通过特定的存储‑加载指令序列特点,判断其中的加载指令是否冗余,对于冗余的Load指令,依据前继指令的特点,可以对其进行删除,或转换为代价较小的拷贝指令或者是比特位提取指令。本发明能够消除冗余的访存指令,大大减少程序的访存时间,提高程序性能,同时暴露了更多的程序优化机会,提高了程序性能。 | ||
搜索关键词: | 一种 消除 冗余 内存 访问 操作 编译 优化 方法 | ||
【主权项】:
一种消除冗余的内存访问操作的编译优化方法,该方法用于别名信息不精确且访存采用Load/Store架构的系统中,其特征在于包括以下步骤:⑴.以基本块为单位对程序进行简单的数据流分析,得到数据访问的使用‑定义链;⑵.以基本块为单位对指令链进行前向遍历,如果检测到内存加载Load指令,那么访问使用‑定义链找到它的定义指令,如果该指令和当前指令的访存地址具有别名关系,那么进入步骤⑶;如果该指令和当前指令的访存地址具有包含关系,那么进入步骤⑷;如果该指令和当前指令的访存地址相同,那么进入步骤⑸;如果未检测到内存加载Load指令时,进入步骤⑹;⑶.记录定义指令为op1,继续访问该指令的前继定义指令op2,根据别名信息,分别比较三条指令的基址寄存器、偏移量寄存器内容关系,并将当前的加载指令转换为相应形式的拷贝指令,然后进入步骤⑹;⑷.如果前继定义指令为内存存储Store指令,将加载指令转化为相应的比特提取指令,然后进入步骤⑹;⑸.删除加载指令,并插入拷贝指令,然后进入步骤⑹;⑹.执行步骤⑵,直到程序所有的基本块处理完毕。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南阳理工学院,未经南阳理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410129958.0/,转载请声明来源钻瓜专利网。