[发明专利]一种编译器的代码优化调度方法有效
申请号: | 201610159967.3 | 申请日: | 2016-03-21 |
公开(公告)号: | CN105843660B | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | 吴俊;李涵;任浩琪;张志峰;赵朝兴;雷蕾;常睿 | 申请(专利权)人: | 同济大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 叶敏华 |
地址: | 200092 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种编译器的代码优化调度方法,应用于VLIW类型处理器,该方法包括以下步骤:(1)将代码划分成基本块;(2)对每个基本块建立数据依赖图,所述的数据依赖图包括多个结点和用于连接结点的边,所述的结点表示指令及指令所需要的机器资源,所述的边表示指令之间的数据相关性;(3)对代码进行全局调度;(4)对代码进行拓扑排序。与现有技术相比,本发明具有能更好的适应VLIW处理器等优点。 | ||
搜索关键词: | 一种 编译器 代码 优化 调度 方法 | ||
【主权项】:
1.一种编译器的代码优化调度方法,应用于VLIW类型处理器,其特征在于,该方法包括以下步骤:(1)将代码划分成基本块;(2)对每个基本块建立数据依赖图,所述的数据依赖图包括多个结点和用于连接结点的边,所述的结点表示指令及指令所需要的机器资源,所述的边表示指令之间的数据相关性;(3)对代码进行全局调度;(4)对代码进行拓扑排序;所述的步骤(4)中采用带优先级的启发式函数来调度结点,调度一个基本块的过程具体为:(401)选取数据依赖图中所有没有输入边的结点,组成集合NoneInput(N);(402)初始化package,并将集合NoneInput(N)中结点值最大的结点加入package,按照结点值从大到小的顺序,依次检查结点是否满足槽约束条件,并将满足槽约束条件的结点加入package,并从集合NoneInput(N)和数据依赖图中删除,并把这些结点的输出边的值减一,直到集合NoneInput(N)为空,则插入Nop指令并结束该package;(403)检查数据依赖图,把所有没有输入的结点加入集合NoneInput(N)中,并执行步骤(402),重复步骤(403)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610159967.3/,转载请声明来源钻瓜专利网。