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

    公开(公告)号:US09110684B2

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

    申请号:US11775848

    申请日:2007-07-10

    CPC classification number: G06F8/44 G06F8/4442 G06F17/30327 G06F17/30598

    Abstract: 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.

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

    Method and apparatus for optimizing software program using inter-procedural strength reduction
    2.
    发明授权
    Method and apparatus for optimizing software program using inter-procedural strength reduction 失效
    使用程序间强度降低优化软件程序的方法和装置

    公开(公告)号:US08146070B2

    公开(公告)日:2012-03-27

    申请号:US12270707

    申请日:2008-11-13

    CPC classification number: G06F8/443

    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.

    Abstract translation: 通过本发明的机制来优化软件程序来提供程序间强度降低。 在正向通过期间,本发明收集全局变量的信息并分析该信息以选择用于优化的候选计算。 在反向传递期间,本发明使用预先计算的值替代使用成本较低或较弱计算的昂贵的计算,并插入新的全局变量的存储操作,以在昂贵的计算中使用的全局变量的定义点处预先计算昂贵的计算。

    METHOD OF PROCEDURE CONTROL DESCRIPTOR-BASED CODE SPECIALIZATION FOR CONTEXT SENSITIVE MEMORY DISAMBIGUATION
    3.
    发明申请
    METHOD OF PROCEDURE CONTROL DESCRIPTOR-BASED CODE SPECIALIZATION FOR CONTEXT SENSITIVE MEMORY DISAMBIGUATION 有权
    程序控制方法基于描述符的中继敏感记忆体解析专用化

    公开(公告)号:US20080301656A1

    公开(公告)日:2008-12-04

    申请号:US11757941

    申请日:2007-06-04

    CPC classification number: G06F8/4441

    Abstract: A computer implemented method, apparatus, and computer program product for compiling source code. The source code is scanned to identify a candidate region. A procedure control descriptor is corresponding to the candidate region is generated. The procedure control descriptor identifies, for the candidate region, a condition which, if true at runtime means that the candidate region can be specialized. Responsive to a determination during compile time that satisfaction of at least one condition will be known only at runtime, the procedure control descriptor is used to specialize the candidate region at compile time to create a first version of the candidate region for execution in a case where the condition is true and a second version of the candidate region for execution in a case where the condition is false. Also responsive to the determination, code is further generated to correctly select one of the first region and the second region at runtime.

    Abstract translation: 用于编译源代码的计算机实现的方法,装置和计算机程序产品。 扫描源代码以识别候选区域。 程序控制描述符对应于生成候选区域。 程序控制描述符为候选区域识别条件,其在运行时为真,意味着候选区域可以是专门的。 在编译期间响应于在运行时仅满足至少一个条件的确定,过程控制描述符用于在编译时专门化候选区域,以在第一版本的候选区域中创建用于执行的候选区域, 条件是真实的,并且在条件为假的情况下用于执行的候选区域的第二版本。 还响应于确定,进一步生成代码以在运行时正确选择第一区域和第二区域中的一个。

    Code motion based on live ranges in an optimizing compiler
    4.
    发明授权
    Code motion based on live ranges in an optimizing compiler 失效
    基于优化编译器中的生存范围的代码运动

    公开(公告)号:US08484630B2

    公开(公告)日:2013-07-09

    申请号:US12343228

    申请日:2008-12-23

    CPC classification number: G06F8/443

    Abstract: Optimizing program code in a static compiler by determining the live ranges of variables and determining which live ranges are candidates for moving code from the use site to the definition site of source code. Live ranges for variables in a flow graph are determined. Selected live ranges are determined as candidates in which code will be moved from a use site within the source code to a definition site within the source code. Optimization opportunities within the source code are identified based on the code motion.

    Abstract translation: 通过确定变量的生存范围并确定哪些生存范围是将代码从使用站点移动到源代码定义位置的候选者来优化静态编译器中的程序代码。 确定流程图中变量的活动范围。 选择的实时范围被确定为将代码从源代码中的使用站点移动到源代码中的定义站点的候选者。 基于代码运动来识别源代码中的优化机会。

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

    公开(公告)号:US08458679B2

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

    申请号:US12888230

    申请日:2010-09-22

    CPC classification number: G06F8/43

    Abstract: 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.

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

    Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs
    6.
    发明申请
    Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs 失效
    用于减少并行程序中与线程私有变量相关联的内存引用开销的方法和系统

    公开(公告)号:US20070089105A1

    公开(公告)日:2007-04-19

    申请号:US11250833

    申请日:2005-10-13

    CPC classification number: G06F8/445 G06F8/443 G06F8/453

    Abstract: A computer implemented method, system and computer program product for accessing threadprivate memory for threadprivate variables in a parallel program during program compilation. A computer implemented method for accessing threadprivate variables in a parallel program during program compilation includes aggregating threadprivate variables in the program, replacing references of the threadprivate variables by indirect references, moving address load operations of the threadprivate variables, and replacing the address load operations of the threadprivate variables by calls to runtime routines to access the threadprivate memory. The invention enables a compiler to minimize the runtime routines call times to access the threadprivate variables, thus improving program performance.

    Abstract translation: 一种计算机实现的方法,系统和计算机程序产品,用于在程序编译期间在并行程序中访问线程私有变量的线程私有存储器。 在程序编译过程中,一种用于在并行程序中访问线程私有变量的计算机实现方法包括在程序中聚合线程私有变量,通过间接引用替代线程私有变量的引用,移动线程私有变量的地址加载操作,以及替换 threadprivate变量通过调用运行时程序访问线程私有内存。 本发明使得编译器能够最小化运行时程序调用时间以访问线程私有变量,从而提高程序性能。

    Fast conversion of integer to float using table lookup
    7.
    发明申请
    Fast conversion of integer to float using table lookup 审中-公开
    使用表查找快速将整数转换为浮点数

    公开(公告)号:US20060047734A1

    公开(公告)日:2006-03-02

    申请号:US10929192

    申请日:2004-08-30

    CPC classification number: H03M7/24

    Abstract: Method, system and computer program product for converting integers to floating point values in a data processing system. The method utilizes data flow analysis and control flow analysis to recognize that a particular integer that is to be converted contains only a limited range of values. Knowledge of this limited range is used to establish a table of floating point values indexed by the integer value. By using the table of floating point values, conversion of an integer to a floating point value can be performed faster and with reduced memory traffic.

    Abstract translation: 用于在数据处理系统中将整数转换为浮点值的方法,系统和计算机程序产品。 该方法利用数据流分析和控制流分析来识别要转换的特定整数仅包含有限的值范围。 知道此有限范围用于建立由整数值索引的浮点值表。 通过使用浮点值表,可以更快地执行整数转换为浮点值并减少内存流量。

    Compiling source code
    8.
    发明授权
    Compiling source code 失效
    编译源代码

    公开(公告)号:US08161464B2

    公开(公告)日:2012-04-17

    申请号:US11402556

    申请日:2006-04-11

    CPC classification number: G06F8/4442

    Abstract: A method of compiling source code. The method includes converting pointer-based access in the source code to array-based access in the source code in a first pass compilation of the source code. Information is collected for objects in the source code during the first pass compilation. Candidate objects in the source code are selected based on the collected information to form selected candidate objects. Global stride variables are created for the selected candidate objects. Memory allocation operations are updated for the selected candidate objects in a second pass compilation of the source code. Multiple-level pointer indirect references are replaced in the source code with multi-dimensional array indexed references for the selected candidate objects in the second pass compilation of the source code.

    Abstract translation: 一种编译源代码的方法。 该方法包括在源代码的第一遍编译中将源代码中的基于指针的访问转换为源代码中的基于数组的访问。 在第一次编译期间,为源代码中的对象收集信息。 基于收集的信息来选择源代码中的候选对象以形成所选择的候选对象。 为所选候选对象创建全局步幅变量。 在源代码的第二遍编译中,针对所选候选对象更新内存分配操作。 在源代码的第二遍编译中,多级指针间接引用被替换为所选候选对象的多维数组索引引用的源代码。

    Method of SIMD-ization through data reshaping, padding, and alignment
    9.
    发明授权
    Method of SIMD-ization through data reshaping, padding, and alignment 失效
    通过数据整形,填充和对齐进行SIMD化的方法

    公开(公告)号:US07856627B2

    公开(公告)日:2010-12-21

    申请号:US11463031

    申请日:2006-08-08

    CPC classification number: G06F8/443

    Abstract: A method for handling Simple Instruction Multiple Data (SIMD) architecture restrictions through data reshaping, padding, and alignment, including: building a global call graph; creating array descriptors for maintaining array attributes; gathering array affinity information; performing global pointer analysis and escape analysis; performing loop-based analysis to identify a SIMD opportunity; building an array affinity graph; performing graph partitioning on the array affinity graph to construct an array reshaping plan; performing data reshaping on the array affinity graph; and performing SIMDization on the array affinity graph wherein SIMDization comprises automatic generation of SIMD code.

    Abstract translation: 一种通过数据整形,填充和对齐来处理简单指令多数据(SIMD)架构限制的方法,包括:构建全局调用图; 创建用于维护数组属性的数组描述符; 收集数组关联信息; 执行全局指针分析和逃逸分析; 执行循环分析以识别SIMD机会; 构建数组关联图; 在阵列关联图上执行图形划分以构造阵列整形计划; 在数组关联图上执行数据整形; 并在阵列亲和度图上执行SIMDization,其中SIMDization包括自动生成SIMD码。

    Method and system for reducing memory reference overhead associated with treadprivate variables in parallel programs
    10.
    发明授权
    Method and system for reducing memory reference overhead associated with treadprivate variables in parallel programs 有权
    并行程序中减少与独立变量相关联的内存引用开销的方法和系统

    公开(公告)号:US07818731B2

    公开(公告)日:2010-10-19

    申请号:US12129449

    申请日:2008-05-29

    CPC classification number: G06F8/445 G06F8/443 G06F8/453

    Abstract: A computer implemented method, system and computer program product for accessing threadprivate memory for threadprivate variables in a parallel program during program compilation. A computer implemented method for accessing threadprivate variables in a parallel program during program compilation includes aggregating threadprivate variables in the program, replacing references of the threadprivate variables by indirect references, moving address load operations of the threadprivate variables, and replacing the address load operations of the threadprivate variables by calls to runtime routines to access the threadprivate memory. The invention enables a compiler to minimize the runtime routines call times to access the threadprivate variables, thus improving program performance.

    Abstract translation: 一种计算机实现的方法,系统和计算机程序产品,用于在程序编译期间在并行程序中访问线程私有变量的线程私有存储器。 在程序编译过程中,一种用于在并行程序中访问线程私有变量的计算机实现方法包括在程序中聚合线程私有变量,通过间接引用替代线程私有变量的引用,移动线程私有变量的地址加载操作,以及替换 threadprivate变量通过调用运行时程序访问线程私有内存。 本发明使得编译器能够最小化运行时程序调用时间以访问线程私有变量,从而提高程序性能。

Patent Agency Ranking