[发明专利]编译程序、编译程序装置和编译方法无效
申请号: | 200710088525.5 | 申请日: | 2003-08-01 |
公开(公告)号: | CN101196825A | 公开(公告)日: | 2008-06-11 |
发明(设计)人: | 瓶子岳人;坂田俊幸;小川一;宫地凉子;宫阪修二;石川智一 | 申请(专利权)人: | 松下电器产业株式会社 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 永新专利商标代理有限公司 | 代理人: | 王英 |
地址: | 日本*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译程序 装置 编译 方法 | ||
本申请是2003年8月1日递交,2004年3月17日公开的,发明名称为“编译程序、编译程序装置和编译方法”,本申请人的第03152256.4号中国发明专利申请的分案申请。
技术领域
本发明涉及一种将以诸如C++语言的高级程序语言描述的源程序编译成机器语言的编译程序,尤其涉及编译程序的优化。
背景技术
随着处理器的功能在近些年来被极大地提高,强烈地寻求可以高效地开发处理器所具有的高度功能的高性能编译程序。换句话说,需要高效地产生由目标处理器执行的高级和专用指令的编译程序。
例如,开发了执行媒体处理、例如数字信号处理所需的各种定点格式的运算指令的处理器和执行SIMD(单指令多数据)类型指令的高性能处理器。需要以这样一个处理器为目标的编译程序通过高效地产生各种定点格式的运算指令和SIMD类型指令来优化代码大小和执行速度。
然而,无须说明的是,一个常规编译程序高效地产生处理器执行的关于以诸如C++语言的高级程序语言描述的源程序的高级和专用指令。因此,在用于媒体处理的应用和在代码大小和执行速度方面需要严格条件的其他应用的开发中,用户在当前条件下别无选择地只能描述汇编程序指令中的临界点。但存在一个问题,汇编程序指令的程序设计不仅需要更多的工时,在可维护性和可移植性上与采用诸如C++语言的高级程序语言的开发相比还非常低级。
另外,常规编译程序在其自身中具有用于产生处理器执行的高级和专用指令等的优化处理。换句话说,高效利用目标处理器的特征来用于优化的处理模块包括在编译程序自身内并集成。因此,当编译程序的功能被扩展或目标编译程序的说明书改变时,需要重新配置整个编译程序。这存在一个问题,必须每次重复编译程序的版本的升级等。
发明内容
考虑到上述问题,本发明的第一个目的是提供一个可以高效地产生处理器执行的高级和专用指令的编译程序。
此外,本发明的第二个目的是提供一个可以在不频繁地重复编译程序自身的版本的升级的情况下通过扩充功能等作出改进的编译程序。
依据本发明的编译程序将一个源程序翻译成一个机器语言程序,该程序包括运算定义信息,其中定义了对应于一个专用于一个目标处理器的机器语言指令的运算,编译程序包括:分析程序步骤,分析源程序;中间编码变换步骤,将分析的源程序变换成中间编码;优化步骤,优化变换的中间编码;以及,代码产生步骤,将优化的中间编码变换成机器语言指令,其中,中间编码变换步骤包括:检测子步骤,检测中间编码中的一个是否引用(refer to)在运算定义信息中定义的运算;以及,替代子步骤,当检测到中间编码时,用一个对应的机器语言指令替代中间编码,以及,在优化步骤中,优化中间编码,中间编码包括在替代子步骤中替代中间编码的机器语言指令。
例如,依据本发明的程序由源程序中包括的主文件(header file)和将源程序翻译成机器语言程序的编译程序组成;在主文件中,定义了一个由数据和方法组成的类;编译程序包括:分析程序步骤,分析源程序;中间编码变换步骤,将分析的源程序变换成中间编码;优化步骤,优化变换的中间编码;以及,代码产生步骤,将优化的中间编码变换成机器语言指令,其中,中间编码变换步骤包括:检测子步骤,检测中间编码中的一个是否引用在主文件中定义的类;以及,替代子步骤,当检测到中间编码时,用一个对应的机器语言指令替代中间编码,以及,在优化步骤中,优化中间编码,中间编码包括在替代子步骤中替代中间编码的机器语言指令。
从而,当有一个语句引用在源程序中的主文件中定义的类时,在中间编码被变换成机器语言指令之后对应于该语句的中间编码变成优化处理的目标,因此,中间编码可以与附近的机器语言指令一起被优化。另外,由于编译程序不仅由编译程序自身的功能性能执行优化(优化处理)而且与主文件中的定义相结合来执行优化,所以编译程序可以增加作为优化目标的语句并提高优化水平。
这里,可接受的是该类定义一个定点类型,并且,在检测子步骤中,检测使用定点类型数据的中间编码,并且,仍然可接受的是在类中的方法定义了以定点类型数据为目标的运算符,在检测子步骤中,检测是基于以一个运算为目标的一个运算符和数据类型集合是否适合方法中的定义来执行的,以及,在替代步骤中,其运算符和数据类型的集合适合定义的中间编码被用一个对应的机器语言指令来替代。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于松下电器产业株式会社,未经松下电器产业株式会社许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710088525.5/2.html,转载请声明来源钻瓜专利网。