[发明专利]编译器装置、编译器方法和编译器程序无效
申请号: | 200710107338.7 | 申请日: | 2007-05-25 |
公开(公告)号: | CN101078994A | 公开(公告)日: | 2007-11-28 |
发明(设计)人: | 田中旭;畑野文博;山名智寻;峰尾昌明 | 申请(专利权)人: | 松下电器产业株式会社 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京德琦知识产权代理有限公司 | 代理人: | 陆弋;朱登河 |
地址: | 日本大阪*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译器 装置 方法 程序 | ||
技术领域
本发明涉及编译器装置、编译器方法和编译器程序。更具体地,本发明涉及用于在执行速度方面实现经过优化的编译的技术。
背景技术
执行优化以减少程序执行时间的编译器装置通常用来提高载入到计算机系统用于处理大量数据的程序的性能。
在编译器装置中,用于重新布置指令次序的指令调度被用来提高程序的执行效率,从而进行优化。进一步,在进行优化的过程中,编译器装置通过控制流分析将程序划分为基本块单元,其中所述控制流分析将注意力集中在程序分支点处的指令语句和分支目标处的指令语句。基本块是一串指令语句,其中按照从基本块头指令语句到尾指令语句的次序执行指令,并且在指令语句串中不包含分支和汇合。但是,在基本块的结尾可以包括分支语句。
在基本块中不存在分支和汇合,所以简单地按照每个块进行指令调度。但是,优化的效果就局限于每个基本块的局部优化。因此,需要通过扩展基本块来扩展指令调度的目标范围。
正如在Ikuo Nakata著、Asakura出版有限公司于2004年出版的“编译器的结构和优化(Structure and Optimization of Compiler)”的358-381页中所描述的那样,存在这样的情况:在包含多个分支的程序中预先知道具有高执行频率的执行路径(下文中称为“热路径”)。在这种情况下,通常所知的方法是移动热路径上的指令语句来扩展热路径的基本块,从而提高热路径的执行效率。
现在参考图5A和图5B所示程序的情况来描述扩展热路径上基本块的方法。图5A示出了一部分程序,而图5B示出了编译器内部程序的中间程序表述。中间程序由一串诸如S1和S2的中间代码构成。进一步,图5B还举例示出了控制流图,该控制流图用实线箭头示出控制流。程序中的指令语句被表达成编译器中的中间代码。控制流图是有向图,其中基本块B1-B7通过指示分支和汇合的有向边连接。进一步,将会以如下的假设来描述该示例,即依次经过虚线HP上基本块B1、B2、B3、B4、B5和B7的执行路径是热路径。
现在参照图6中所示的程序进行描述。在该程序中,如图7所示,考虑到基本块B4的中间代码S8被移动到基本块B2并且执行从基本块B3到基本块B4的转变的情况,作为中间代码S8的拷贝的中间代码S81被插入基本块B3。根据这一操作,可以扩展热路径HP上的基本块B2,同时还保持程序的一致性。
但是,如图8所示,在基本块B1、B2、B4以这样的次序转变并且基本块B4的分支指令S9被判断为否的情况下,当基本块B5的中间代码S10被移动到基本块B2时,基本块B6的中间代码S12的变量a实际上必须引用基本块B1的中间代码S1的变量a,但是它变为引用转移后中间代码S10的变量a。所以不能保持程序的一致性。
如上所述,当通过移动中间代码越过在尾部包含分支指令的基本块而没有保持原始程序对数据的依赖时,中间代码的移动是受限制的。所以不能扩展基本块。
发明内容
因此,本发明的主要目的是提出一种编译器装置,其可以将程序转换为能够在特定执行路径上扩展基本块,还保持程序的一致性。
(1)根据本发明的编译器装置是一种用于将包括分支指令的源程序转换为目标程序的编译器装置,所述目标程序是一串目标代码。该装置包括:
执行路径指定设备、第一执行路径代码生成器、保证代码生成器、部分代码生成器、第一分支代码生成器、第一依赖分析器和并行化设备,其中:
所述执行路径指定设备从中间包括分支指令的部分指令串中所包含的多个执行路径中指定单个执行路径,所述部分指令串构成所述源程序;
所述第一执行路径代码生成器生成第一执行路径代码,通过将在由所述执行路径指定设备所指定的执行路径上定义的、并且需要出现在所述指定执行路径的入口处的变量替换为另一变量而获得该第一执行路径代码;
所述保证代码生成器生成用于将所述另一变量恢复为原始变量的保证代码,所述另一变量被所述第一执行路径代码生成器替换并且也需要出现在所述指定执行路径的出口处;
所述部分代码生成器生成与所述部分指令串相对应的部分代码;
当用于执行所述指定执行路径的分支条件不成立时,所述第一分支代码生成器根据所述指定执行路径上条件分支指令的条件,在所述指定执行路径上的所述条件分支指令中生成第一分支代码,其分支到所述部分代码的起点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于松下电器产业株式会社,未经松下电器产业株式会社许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710107338.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电阻值控制系统
- 下一篇:机动车室内空气循环净化器