DATA SPLITTING FOR RECURSIVE DATA STRUCTURES
    11.
    发明申请
    DATA SPLITTING FOR RECURSIVE DATA STRUCTURES 有权
    数据分析用于重现数据结构

    公开(公告)号:US20090019425A1

    公开(公告)日:2009-01-15

    申请号:US11775848

    申请日:2007-07-10

    IPC分类号: G06F9/44 G06F17/30

    摘要: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.

    摘要翻译: 本发明的实施例提供了一种用于递归数据结构的数据分割的方法,系统和计算机程序产品。 在本发明的一个实施例中,可以提供用于数据分解递归数据结构的方法。 该方法可以包括在源代码内识别递归数据结构类型的数据对象,例如链表,定义多个不同数据字段的递归数据结构类型。 该方法还可以包括将数据对象分组成一些存储池单元,每个单元可以包含相同数量的数据对象。 每个内存池单元都可以看作是数据对象的数组。 该方法可以包括数据分割,其可以是每个不同存储器池单元中的最大阵列分割。 最后,该方法可以包括三种不同的方法,包括字段填充,字段填充和字段分割,以处理数据结构中的不规则字段大小。

    Data splitting for recursive data structures
    13.
    发明授权
    Data splitting for recursive data structures 有权
    递归数据结构的数据分割

    公开(公告)号:US09110684B2

    公开(公告)日:2015-08-18

    申请号:US11775848

    申请日:2007-07-10

    IPC分类号: G06F9/44 G06F9/45

    摘要: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.

    摘要翻译: 本发明的实施例提供了一种用于递归数据结构的数据分割的方法,系统和计算机程序产品。 在本发明的一个实施例中,可以提供用于数据分解递归数据结构的方法。 该方法可以包括在源代码内识别递归数据结构类型的数据对象,例如链接列表,定义多个不同数据字段的递归数据结构类型。 该方法还可以包括将数据对象分组成一些存储池单元,每个单元可以包含相同数量的数据对象。 每个内存池单元都可以看作是数据对象的数组。 该方法可以包括数据分割,其可以是每个不同存储器池单元中的最大阵列分割。 最后,该方法可以包括三种不同的方法,包括字段填充,字段填充和字段分割,以处理数据结构中的不规则字段大小。

    Architecture cloning for power PC processors
    14.
    发明授权
    Architecture cloning for power PC processors 失效
    电源PC处理器的架构克隆

    公开(公告)号:US08117604B2

    公开(公告)日:2012-02-14

    申请号:US11461278

    申请日:2006-07-31

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F8/447

    摘要: A method for implementing architecture cloning including: constructing a program call graph in a link phase of interprocedural analysis to model calling relationships between one or more procedures in a program; analyzing the program call graph to obtain information about the program; analyzing the program to identify the one or more procedures subject to architecture cloning; determining feasibility of architecture cloning; marking the one or more procedures in the program suitable for architecture cloning; naming the one or more procedures in the program suitable for architecture cloning; inserting a runtime routine call at an entry point of the program; invoking architecture cloning when one or more candidate procedures are identified during procedure cloning; providing a user with an interface for specifying multiple architecture targets to the compiler; and enabling the compiler to generate architectural specific instructions optimized for each of the multiple architecture targets.

    摘要翻译: 一种用于实现架构克隆的方法,包括:在程序间分析的链接阶段中构建程序调用图,以模拟程序中的一个或多个过程之间的调用关系; 分析程序调用图以获取有关程序的信息; 分析程序以识别一个或多个进行架构克隆的过程; 确定建筑克隆的可行性; 标记适合建筑克隆的程序中的一个或多个程序; 命名适用于架构克隆的程序中的一个或多个程序; 在程序的入口点插入运行时程序调用; 在程序克隆过程中识别出一个或多个候选程序时调用架构克隆; 向用户提供用于向编译器指定多个架构目标的接口; 并使编译器能够生成针对多个架构目标中的每一个优化的架构特定指令。

    Framework for parallelizing general reduction
    15.
    发明授权
    Framework for parallelizing general reduction 失效
    平行一般裁减的框架

    公开(公告)号:US08037462B2

    公开(公告)日:2011-10-11

    申请号:US11461863

    申请日:2006-08-02

    IPC分类号: G06F9/45

    CPC分类号: G06F8/452

    摘要: A method for providing parallel processing capabilities including: performing scalar and array privatization analysis via a compiler; checking whether an assignment statement is reducible; recognizing reduction patterns through a pattern matching algorithm; classifying a reduction type of each of the reduction patterns; and performing transformations and code generation for each reduction the reduction type of each of the reduction patterns.

    摘要翻译: 一种提供并行处理能力的方法,包括:通过编译器进行标量和阵列私有化分析; 检查一个赋值语句是否可以减少; 通过模式匹配算法识别缩减模式; 对每种减少模式的减少类型进行分类; 并且对每个减少模式的每个还原类型进行每个缩减执行变换和代码生成。

    MANAGING SPECULATIVE ASSIST THREADS
    16.
    发明申请
    MANAGING SPECULATIVE ASSIST THREADS 审中-公开
    管理测量辅助螺纹

    公开(公告)号:US20110093838A1

    公开(公告)日:2011-04-21

    申请号:US12905202

    申请日:2010-10-15

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F9/4843

    摘要: An illustrative embodiment provides a computer-implemented process for managing speculative assist threads for data pre-fetching that analyzes collected source code and cache profiling information to identify a code region containing a delinquent load instruction and generates an assist thread, including a value for a local version number, at a program entry point within the identified code region. Upon activation of the assist thread the local version number of the assist thread is compared to the global unique version number of the main thread for the identified code region and an iteration distance between the assist thread relative to the main thread is compared to a predefined value. The assist thread is executed when the local version number of the assist thread matches the global unique version number of the main thread, and the iteration distance between the assist thread relative to the main thread is within a predefined range of values.

    摘要翻译: 示例性实施例提供了一种用于管理用于数据预取的投机辅助线程的计算机实现的过程,其分析收集的源代码和高速缓存分析信息以识别包含违规加载指令的代码区域,并且生成辅助线程,包括本地 版本号,在识别的代码区域内的程序入口点。 辅助线程激活后,辅助线程的本地版本号与所识别的代码区域的主线程的全局唯一版本号进行比较,并且将辅助线程相对于主线程的迭代距离与预定义值进行比较 。 当辅助线程的本地版本号与主线程的全局唯一版本号匹配时,执行辅助线程,并且辅助线程相对于主线程之间的迭代距离在预定义的值范围内。

    MULTIPLE PASS COMPILER INSTRUMENTATION INFRASTRUCTURE
    17.
    发明申请
    MULTIPLE PASS COMPILER INSTRUMENTATION INFRASTRUCTURE 有权
    多通道编程仪表基础设施

    公开(公告)号:US20110016460A1

    公开(公告)日:2011-01-20

    申请号:US12830553

    申请日:2010-07-06

    IPC分类号: G06F9/45

    摘要: A method includes configuring one or more processors to perform operations. The operations include instrumenting at least one code region of an application with at least one annotation for generating profile data when the at least one code region is executed. The operations include executing the application to generate profile data for the at least one code region. The operations also include identifying, from the profile data, a delinquent code region from the generated profile data. The operations include instrumenting the delinquent code region with annotations for generating profile data when the code regions are executed. The operations include executing the application to generate additional profile data for the at least one code region, including the delinquent code region.

    摘要翻译: 一种方法包括配置一个或多个处理器以执行操作。 所述操作包括:当至少一个代码区被执行时,至少具有用于产生简档数据的注释的应用的至少一个代码区。 所述操作包括执行所述应用以生成所述至少一个代码区域的简档数据。 这些操作还包括从简档数据识别来自所生成的简档数据的拖欠代码区域。 这些操作包括在执行代码区域时,对拖欠代码区域进行标注,以生成配置文件数据。 这些操作包括执行该应用以生成包括该错误代码区域在内的至少一个代码区域的附加简档数据。

    Architecture Cloning For Power PC Processors
    18.
    发明申请
    Architecture Cloning For Power PC Processors 失效
    电源处理器的架构克隆

    公开(公告)号:US20080028383A1

    公开(公告)日:2008-01-31

    申请号:US11461278

    申请日:2006-07-31

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F8/447

    摘要: A method for implementing architecture cloning including: constructing a program call graph in a link phase of interprocedural analysis to model calling relationships between one or more procedures in a program; analyzing the program call graph to obtain information about the program; analyzing the program to identify the one or more procedures subject to architecture cloning; determining feasibility of architecture cloning; marking the one or more procedures in the program suitable for architecture cloning; naming the one or more procedures in the program suitable for architecture cloning; inserting a runtime routine call at an entry point of the program; invoking architecture cloning when one or more candidate procedures are identified during procedure cloning; providing a user with an interface for specifying multiple architecture targets to the compiler; and enabling the compiler to generate architectural specific instructions optimized for each of the multiple architecture targets.

    摘要翻译: 一种用于实现架构克隆的方法,包括:在程序间分析的链接阶段中构建程序调用图,以模拟程序中的一个或多个过程之间的调用关系; 分析程序调用图以获取有关程序的信息; 分析程序以识别一个或多个进行架构克隆的过程; 确定建筑克隆的可行性; 标记适合建筑克隆的程序中的一个或多个程序; 命名适用于架构克隆的程序中的一个或多个程序; 在程序的入口点插入运行时程序调用; 在程序克隆过程中识别出一个或多个候选程序时调用架构克隆; 向用户提供用于向编译器指定多个架构目标的接口; 并使编译器能够生成针对多个架构目标中的每一个优化的架构特定指令。

    May-constant propagation
    19.
    发明授权
    May-constant propagation 失效
    可能恒定传播

    公开(公告)号:US08458679B2

    公开(公告)日:2013-06-04

    申请号:US12888230

    申请日:2010-09-22

    IPC分类号: G06F9/45

    CPC分类号: G06F8/43

    摘要: May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data.

    摘要翻译: 可能常数传播是一种用于通过忽略可能的死亡和低概率重定义来通过调用图和控制流程图传播常量的技术。 确定与程序代码中的常量相关联的变量。 对包含变量的程序代码的代码段执行执行流概率。 基于程序代码的流程数据计算执行流概率。 至少第一代码段被确定为具有高的执行流概率。 与第一个变量关联的第一个常量通过流数据传播,以产生修改的流数据。

    Systems, methods, and computer products for compiler support for aggressive safe load speculation
    20.
    发明授权
    Systems, methods, and computer products for compiler support for aggressive safe load speculation 失效
    用于编译器的系统,方法和计算机产品支持积极的安全负载推测

    公开(公告)号:US08191057B2

    公开(公告)日:2012-05-29

    申请号:US11845491

    申请日:2007-08-27

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/4441

    摘要: Systems, methods and computer products for compiler support for aggressive safe load speculation. Exemplary embodiments include a method for aggressive safe load speculation for a compiler in a computer system, the method including building a control flow graph, identifying both countable and non-countable loops, gathering a set of candidate loops for load speculation, and for each candidate loop in the set of candidate loops gathered for load speculation, computing an estimate of the iteration count, delay cycles, and code size, performing a profitability analysis and determining an unroll factor based on the delay cycles and the code size, transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively and performing low-level instruction scheduling on the generated unrolled main loop.

    摘要翻译: 用于编译器的系统,方法和计算机产品支持攻击性安全负载推测。 示例性实施例包括用于计算机系统中的编译器的积极的安全负载推测的方法,所述方法包括构建控制流程图,识别可计数和不可计数循环,收集用于负载推测的一组候选循环,以及针对每个候选 针对负载推测收集的候选循环集中的循环,计算迭代计数,延迟周期和代码大小的估计,执行盈利能力分析并基于延迟周期和代码大小确定展开因子,将循环转换为 生成序言循环以实现数据对齐和循环指令的展开主循环,指示哪些负载可以安全地推测执行,并对生成的未展开主循环执行低级指令调度。