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使用粗略粒度导入方法,其大大限制了CMO的潜力。
技术实现思路
本
技术实现思路
以简化形式介绍了概念的选择,以提供对本公开的某些方面的基本理解。本
技术实现思路
不是对本公开的广泛概述,并且不旨在识别本公开的关键或重要要素或描绘本公开的范围。本
技术实现思路
只是将本公开的一些概念呈现为下面提供的具体实施方式的前序。本公开一般涉及用于源代码编译的方法和系统。更具体地,本公开的方面涉及用于实现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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。