当前位置: 首页 > 专利查询>谷歌公司专利>正文

精细粒度需求驱动的IPO基础架构制造技术

技术编号:16307961 阅读:48 留言:0更新日期:2017-09-27 01:53
提供了用于过程间优化(IPO)的方法和系统。新的IPO架构(称为“ThinLTO”)被设计为解决现有IPO手段(诸如,传统的链接时间优化(LTO)和轻量级过程间优化(LIPO))的缺点和限制,并成为新的链接‑时间优化标准。使用ThinLTO,需求驱动和基于摘要的精细粒度的导入最大化跨模块优化(CMO)的潜力,这使得CMO尽可能有用。ThinLTO还提供全局索引,其使得能够快速函数导入;并行一些性能关键但昂贵的过程间分析和转换;利用需求驱动的惰性导入将调试构建的存储器消耗最小化的调试信息;并允许轻松集成第三方分布式构建系统。此外,ThinLTO还可以使用IPO服务器实现,从而消除对串行步骤的需要。

Fine grained Requirements Driven IPO infrastructure

Methods and systems for inter process optimization (IPO) are provided. The new IPO framework (referred to as \ThinLTO\) is designed to solve the existing IPO methods (such as traditional link time optimization (LTO) and lightweight process optimization (LIPO)) of the disadvantages and limitations, and become the new standard link time optimization. Using ThinLTO, demand driven and summary based fine grained imports maximize the potential of cross module optimization (CMO), which makes CMO as useful as possible. ThinLTO also provides a global index, which enables fast function parallel import; some key performance but expensive interprocedural analysis and transformation; import demand driven by inertia will be constructed to minimize the consumption of memory debugging debugging information; and allows easy integration of third party distributed system. In addition, ThinLTO can also be implemented using the IPO server, eliminating the need for serial steps.

【技术实现步骤摘要】
【国外来华专利技术】精细粒度需求驱动的IPO基础架构相关申请的交叉引用本申请要求于2015年2月2日提交的美国临时专利申请序列号62/110,738的优先权,其全部公开内容通过引用并入本文。
技术介绍
跨模块优化(CMO)(其通常意指过程间优化(IPO))是使得编译器能够优化用户程序的最有效方式之一。传统上,使用称为链接时间优化(LTO)的技术实现CMO。LTO是编译模型,其在链接时启用跨模块优化和整个程序分析(顾名思义)。然而,LTO受到几个限制,使其不适合用于非常大的应用。这样的限制包括例如:(1)LTO需要大量的存储器来执行链接步骤;(2)链接步骤是连续的,并且大大减慢了整体编译;和(3)LTO不能轻易地与大型分布式构建系统集成。用于实现CMO的其它现有技术被称为轻量级IPO(LIPO),其比LTO更具可扩展性。然而,LIPO受到自己的限制,并且在能够进一步提高LIPO的性能方面已经达到了上限。与LIPO相关联的事务的一些示例包括:(1)LIPO需要简档(profile)反馈,并且默认不能启用;(2)LIPO对构建系统非常侵入(例如,需要复杂的构建系统支持来部署它);以及(3)LIPO使用粗略粒度导入方本文档来自技高网...
精细粒度需求驱动的IPO基础架构

【技术保护点】
一种用于过程间优化的方法,包括:为多个源代码模块中的每一个生成中间表示文件;为所述多个源代码模块中的每一个生成函数索引和函数摘要数据;在每个中间表示文件的单独部分中存储对应源代码模块的所生成的函数索引和函数摘要数据;使用组合函数映射生成所生成的中间表示文件的精简档案;以及对所述多个源代码模块执行跨模块优化。

【技术特征摘要】
【国外来华专利技术】2015.02.02 US 62/110,738;2015.02.27 US 14/634,4011.一种用于过程间优化的方法,包括:为多个源代码模块中的每一个生成中间表示文件;为所述多个源代码模块中的每一个生成函数索引和函数摘要数据;在每个中间表示文件的单独部分中存储对应源代码模块的所生成的函数索引和函数摘要数据;使用组合函数映射生成所生成的中间表示文件的精简档案;以及对所述多个源代码模块执行跨模块优化。2.根据权利要求1所述的方法,其中,所述跨模块优化以模块粒度并行。3.根据权利要求1所述的方法,其中,执行所述跨模块优化包括:使用所述组合函数映射执行快速函数导入。4.根据权利要求1所述的方法,其中,执行所述跨模块优化包括:使用来自一个或多个其它模块的调试信息的需求驱动导入。5.一种计算机实现的方法,包括:对多个源代码模块执行跨模块优化,其中,所述跨模块优化以模块粒度并行,使用组合函数映射执行快速函数导入,并且使用来自其它模块的调试信息的需求驱动导入。6.根据权利要求5所述的方法,还包括:为所述多个源代码模块中的每一个生成中间表示文件。7.根据权利要求5所述的方法,还包括:为所述多个源代码模块中的每一个生成函数索引和函数摘要数据。8.根据权利要求5所述的方法,还包括:为所述多个源代码模块中的每一个生成中间表示文件;为所述多个源代码模块中的每一个生成函数索引和函数摘要数据;在每个中间表示文件的单独部分中存储对应源代码模块的所生成的函数索引和函数摘要数据;以及使用组合函数映射生成所生成的中间表示文件的精简档案。9.一种用于过程间优化的系统,包括:至少一个处理器;和非暂时性计算机可读介质,所述非暂时性计算机可读介质耦合到所述至少一个处理器,具有存储在其上的指令,所述指令当由所述至少一个处理器执行时,使所述至少一个处理器:为多个源代码模块中的每一个生成中间表示文件;为所述多个源代码模块中的每一个生成函数索引和函数摘要数据;在每个中间表示文件的单独部分中存储对应源代码模块的所生成的函数索引和函数摘要数据;使用组合函数映射生成所生成的中间表示文件的精简档案;以及对所述多个源代码模块执行跨模块优化。10.根据权利要求9所述的系统,其中,所述跨模块优化以所述模块粒度并行。11.根据权利要求9所述的系统,其中,进一步使所述...

【专利技术属性】
技术研发人员:欣亮·戴维·李特雷莎·路易斯·约翰逊徐榕
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1