-
公开(公告)号:US20120151460A1
公开(公告)日:2012-06-14
申请号:US12966867
申请日:2010-12-13
申请人: Pramod G. Joisha , Robert Samuel Schreiber , Prithviraj Banerjee , Hans Boehm , Dhruva Chakrabarti
发明人: Pramod G. Joisha , Robert Samuel Schreiber , Prithviraj Banerjee , Hans Boehm , Dhruva Chakrabarti
IPC分类号: G06F9/45
CPC分类号: G06F8/45
摘要: A parallel-code optimization system includes a Procedural Concurrency Graph (PCG) generator. The PCG generator produces an initial PCG of a computer program including parallel code, and determines a refined PCG from the initial PCG by applying concurrency-type refinements and interference-type refinements to the initial PCG. The initial PCG and the refined PCG include nodes and edges connecting pairs of the nodes. The nodes represent defined procedures in the parallel code, and each edge represents a may-happen-in-parallel relation, and is associated with a set of lvalues that represents the immediate interference between the corresponding pair of nodes.
摘要翻译: 并行代码优化系统包括一个过程并发图(PCG)生成器。 PCG生成器产生包括并行代码的计算机程序的初始PCG,并且通过对初始PCG应用并发型改进和干扰类型细化来确定来自初始PCG的精细PCG。 初始PCG和精细PCG包括连接节点对的节点和边。 节点表示并行代码中的定义的过程,并且每个边表示可并发并行关系,并且与表示相应对节点之间的即时干扰的一组左值相关联。
-
公开(公告)号:US20050188363A1
公开(公告)日:2005-08-25
申请号:US10783761
申请日:2004-02-20
申请人: Sungdo Moon , XinLiang Li , Dhruva Chakrabarti
发明人: Sungdo Moon , XinLiang Li , Dhruva Chakrabarti
IPC分类号: G06F9/45
CPC分类号: G06F8/4441
摘要: Techniques for cross-module in-lining are disclosed. In an embodiment, in-lining is done in conjunction with a 3-phase compiler including a front-end phase, an IPA (Inter-Procedural Analysis) phase, and a back-end phase. The front-end phase processes the source code in various modules and provides the intermediate representations of such source code. The IPA phase determines whether a function should be in-lined, and, if so, provides in-line transformation instructions for the back-end phase to execute. The back-end phase executes the instructions provided by the IPA, which, in effect, transforms the in-lining code.
摘要翻译: 披露了用于跨模块内衬的技术。 在一个实施例中,内联是与包括前端阶段,IPA(程序间分析)阶段和后端阶段的三阶段编译器一起完成的。 前端阶段处理各种模块中的源代码,并提供这些源代码的中间表示。 IPA阶段确定一个功能是否应该是内联的,如果是这样,提供后端阶段执行的在线变换指令。 后端阶段执行由IPA提供的指令,其实际上转换内联代码。
-
公开(公告)号:US20050155023A1
公开(公告)日:2005-07-14
申请号:US10756881
申请日:2004-01-13
申请人: XinLiang Li , Shin-Ming Liu , Dhruva Chakrabarti , Robert Hundt
发明人: XinLiang Li , Shin-Ming Liu , Dhruva Chakrabarti , Robert Hundt
IPC分类号: G06F9/45
CPC分类号: G06F8/443
摘要: Techniques for partitioning modules into smaller groups are disclosed. In various embodiments, cross-module optimization may be performed on these smaller groups. Further, related modules are grouped together based on a predefined algorithm. Relatedness, or closeness, or affinity, of modules are considered based on various factors including, for example, the number of calls between routines in different modules, possibility of in-lining a first routine in a first module into a second routine in a second module, characteristics of parameters being passed between routines in different modules, etc.
摘要翻译: 公开了将模块分成较小组的技术。 在各种实施例中,可以对这些较小的组执行交叉模块优化。 此外,相关模块基于预定义的算法被分组在一起。 基于各种因素考虑模块的相关性,或亲密性,或亲和性,例如包括例如不同模块中的例程之间的调用次数,将第一模块中的第一程序内插到第二程序中的第二程序的可能性 模块,在不同模块中的例程之间传递参数的特性等
-
公开(公告)号:US20050097533A1
公开(公告)日:2005-05-05
申请号:US10698509
申请日:2003-10-31
申请人: Dhruva Chakrabarti , Shin-Ming Liu
发明人: Dhruva Chakrabarti , Shin-Ming Liu
IPC分类号: G06F9/45
CPC分类号: G06F8/433 , G06F8/4443
摘要: One embodiment disclosed presents a framework for performing inline specialization with the aim of improving run-time performance at a low compile-time cost. Given a call-graph, if multiple call-chains in it have at least one common call site, the ability, to inline a common call site in one or more (but not all) of the call-chains, is termed inline specialization. In accordance with an embodiment disclosed, our framework implements this functionality by adding new call sites to the program as and when necessary. This leads to the introduction of a dependence relationship between call sites. An inline analyzer in accordance with the embodiment requires materialization of summary information for these new edges and considers them for inlines. The inline transformation phase uses the dependence relationship to patch up the intermediate representation on the dependent edges before inlining them, if necessary.
摘要翻译: 所公开的一个实施例提出了用于执行内联专业化的框架,目的是以低的编译时成本来改善运行时性能。 给定一个调用图,如果其中的多个调用链具有至少一个公共调用站点,则在一个或多个(但不是全部)调用链中内联公共调用站点的能力被称为内联专用化。 根据所公开的实施例,我们的框架通过在必要时向程序添加新的呼叫站点来实现该功能。 这导致在呼叫站点之间引入依赖关系。 根据实施例的在线分析器需要实现这些新边缘的摘要信息,并将其视为内联。 如果需要,内联转换阶段使用依赖关系在依赖关系边缘之前修补中间表示。
-
公开(公告)号:US20050097528A1
公开(公告)日:2005-05-05
申请号:US10699144
申请日:2003-10-31
申请人: Dhruva Chakrabarti , Shin-Ming Liu
发明人: Dhruva Chakrabarti , Shin-Ming Liu
IPC分类号: G06F9/45
CPC分类号: G06F8/4441
摘要: One embodiment disclosed relates to a method of compiling a computer program. A plurality of modules of source code is received, and intermediate representations corresponding to the modules are generated. A set of data from the intermediate representations is extracted to create an inliner summary for each module. Using the inliner summaries and a globally-sorted working-list based order, an inline analysis phase determines which call sites in the modules are to be inlined by substituting code from a called module. The propagation of summaries may be done elaborately, potentially throughout the call-graph. The goodness of call sites may be computed with a view to comparing them and ordering them in a descending order of goodness. Applicants believe the compile-time effectiveness lies in the ability to work consistently with summary information in the inline analysis phase without having to touch the intermediate representation, while maintaining a high degree of run-time performance by continuously updating the summary information.
摘要翻译: 公开的一个实施例涉及一种编译计算机程序的方法。 接收多个源代码的模块,生成对应于模块的中间表示。 提取来自中间表示的一组数据,以创建每个模块的内联摘要。 使用内联摘要和基于全球排序的工作列表的顺序,内联分析阶段通过从被调用的模块中替换代码来确定模块中的哪些呼叫站点将被内联。 摘要的传播可以在整个调用图中精确地完成。 可以计算呼叫站点的好处,以便将它们进行比较并按照优先级的降序对它们进行排序。 申请人认为,编译时的有效性在于能够在内联分析阶段一致地执行摘要信息,而无需触及中间表示,同时通过不断更新摘要信息来保持高度的运行时性能。
-
-
-
-