Method and apparatus for inlining native functions into compiled Java code
    1.
    发明申请
    Method and apparatus for inlining native functions into compiled Java code 失效
    将本机函数集成为编译Java代码的方法和装置

    公开(公告)号:US20060190934A1

    公开(公告)日:2006-08-24

    申请号:US11062293

    申请日:2005-02-18

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.

    摘要翻译: 提供了一种方法,装置和计算机指令,用于将本机函数内联到编译的Java代码中。 本发明提供了一种转换引擎,用于将本机函数的中间表示转换为即时(JIT)编译器的中间表示。 使用转换的中间表示法,内联函数将转换的JIT编译器的中间表示递归内嵌到本机调用现场,以消除调用本机函数和该函数进行的后续本机调用的需要。 内联过程继续,直到遇到不透明函数的调用或直到达到JIT编译器中间表示增长限制为止。 内置函数还可以通过调用合成本机函数来替换非绝对或不透明的大多数本机函数,该函数提供对包含原始非可嵌入调用的实现的本机库的访问。

    Method and apparatus for transforming Java native interface function calls into simpler operations during just-in-time compilation
    2.
    发明申请
    Method and apparatus for transforming Java native interface function calls into simpler operations during just-in-time compilation 失效
    将Java本机接口函数调用转换为更简单的操作的方法和装置,以便及时编译

    公开(公告)号:US20060190935A1

    公开(公告)日:2006-08-24

    申请号:US11062306

    申请日:2005-02-18

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: A method, apparatus, and computer instructions are provided for transforming Java Native Interface function calls to constants, internal just-in-time compiler operations or simpler intermediate representation. A compiler generates a plurality of intermediate representations for a plurality of native interface function calls. During inlining of native code, matching is performed on each native function call (against this list) and a list of native interface function calls is generated. For each native interface function call, a JIT call transformer attempts to replace the native interface function call with a constant, internal just-in-time compiler operation or a simpler intermediate representation depending on the type of native interface function call.

    摘要翻译: 提供了一种方法,设备和计算机指令,用于将Java Native Interface函数调用转换为常量,内部即时编译器操作或更简单的中间表示。 编译器为多个本地接口函数调用生成多个中间表示。 在本地代码内联时,对每个本地函数调用执行匹配(针对此列表),并生成本机接口函数调用列表。 对于每个本地接口函数调用,JIT调用变量会根据本地接口函数调用的类型,尝试使用常量,内部即时编译器操作或更简单的中间表示来替换本机接口函数调用。

    Method for improving performance of executable code
    3.
    发明授权
    Method for improving performance of executable code 失效
    提高可执行代码性能的方法

    公开(公告)号:US07954094B2

    公开(公告)日:2011-05-31

    申请号:US11389961

    申请日:2006-03-27

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.

    摘要翻译: 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用相应重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。

    Method for improving performance of executable code
    4.
    发明申请
    Method for improving performance of executable code 失效
    提高可执行代码性能的方法

    公开(公告)号:US20070226698A1

    公开(公告)日:2007-09-27

    申请号:US11389961

    申请日:2006-03-27

    IPC分类号: G06F9/44

    CPC分类号: G06F9/45516

    摘要: A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.

    摘要翻译: 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用对应的重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。

    Method, computer program product, and device for reducing delays in data processing
    5.
    发明授权
    Method, computer program product, and device for reducing delays in data processing 有权
    方法,计算机程序产品和用于减少数据处理延迟的设备

    公开(公告)号:US08056067B2

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

    申请号:US11536837

    申请日:2006-09-29

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4451

    摘要: Data processing delay is reduced during data processing, using compiler optimization. Blocks of code are scanned in an order from blocks recurring most often to blocks recurring least often. In an order from blocks recurring most often to block recurring least often, shifts are inserted before arithmetic references, such that a previous use of the arithmetic reference does not require a shift, shifts are inserted after each memory use such that the next use of the memory does not require a shift, and shifts are inserted after each arithmetic reference such that the next use of the arithmetic reference requires no shift. In addition, if there is a mismatch between the last shifted amount of any one block and the required initial shifted amount in any of its successors, shifts are inserted to make up for the mismatch.

    摘要翻译: 在数据处理期间,使用编译器优化减少数据处理延迟。 代码块按照最常重复的顺序扫描,最少经常排列。 按照最经常重复的块到最少频繁地重复循环的顺序,在算术参考之前插入移位,使得先前使用算术参考不需要移位,在每个存储器使用之后插入移位,使得下一次使用 存储器不需要移位,并且在每个算术参考之后插入移位,使得下一次使用算术参考不需要移位。 此外,如果任何一个块的最后一个移位量与任何一个块中的所需初始移位量之间存在不匹配,则插入移位以弥补不匹配。

    METHOD, COMPUTER PROGRAM PRODUCT, AND DEVICE FOR REDUCING DELAYS IN DATA PROCESSING
    6.
    发明申请
    METHOD, COMPUTER PROGRAM PRODUCT, AND DEVICE FOR REDUCING DELAYS IN DATA PROCESSING 有权
    方法,计算机程序产品和用于减少数据处理延迟的装置

    公开(公告)号:US20080098376A1

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

    申请号:US11536837

    申请日:2006-09-29

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4451

    摘要: Data processing delay is reduced during data processing, using compiler optimization. Blocks of code are scanned in an order from blocks recurring most often to blocks recurring least often. In an order from blocks recurring most often to block recurring least often, shifts are inserted before arithmetic references, such that a previous use of the arithmetic reference does not require a shift, shifts are inserted after each memory use such that the next use of the memory does not require a shift, and shifts are inserted after each arithmetic reference such that the next use of the arithmetic reference requires no shift. In addition, if there is a mismatch between the last shifted amount of any one block and the required initial shifted amount in any of its successors, shifts are inserted to make up for the mismatch.

    摘要翻译: 在数据处理期间,使用编译器优化减少数据处理延迟。 代码块按照最常重复的顺序扫描,最少经常排列。 按照最经常重复的块到最少频繁地重复循环的顺序,在算术参考之前插入移位,使得先前使用算术参考不需要移位,在每个存储器使用之后插入移位,使得下一次使用 存储器不需要移位,并且在每个算术参考之后插入移位,使得下一次使用算术参考不需要移位。 此外,如果任何一个块的最后一个移位量与任何一个块中的所需初始移位量之间存在不匹配,则插入移位以弥补不匹配。

    Method, apparatus, and program to efficiently calculate cache prefetching patterns for loops
    7.
    发明申请
    Method, apparatus, and program to efficiently calculate cache prefetching patterns for loops 失效
    用于循环的高速缓存预取模式的方法,装置和程序

    公开(公告)号:US20060253656A1

    公开(公告)日:2006-11-09

    申请号:US11120915

    申请日:2005-05-03

    IPC分类号: G06F13/28

    CPC分类号: G06F12/0862 G06F2212/6026

    摘要: A mechanism is provided that identifies instructions that access storage and may be candidates for catch prefetching. The mechanism augments these instructions so that any given instance of the instruction operates in one of four modes, namely normal, unexecuted, data gathering, and validation. In the normal mode, the instruction merely performs the function specified in the software runtime environment. An instruction in unexecuted mode, upon the next execution, is placed in data gathering mode. When an instruction in the data gathering mode is encountered, the mechanism of the present invention collects data to discover potential fixed storage access patterns. When an instruction is in validation mode, the mechanism of the present invention validates the presumed fixed storage access patterns.

    摘要翻译: 提供了一种机制,其识别访问存储的指令,并且可以是捕获预取的候选者。 该机制增加了这些指令,使得指令的任何给定实例以四种模式之一运行,即正常,未执行,数据收集和验证。 在正常模式下,指令仅执行软件运行环境中指定的功能。 未执行模式的指令在下次执行时被置于数据采集模式。 当遇到数据采集模式的指令时,本发明的机制收集数据以发现潜在的固定存储访问模式。 当指令处于验证模式时,本发明的机制验证了假定的固定存储访问模式。

    Modification of array access checking in AIX
    8.
    发明申请
    Modification of array access checking in AIX 失效
    在AIX中修改阵列访问检查

    公开(公告)号:US20050257096A1

    公开(公告)日:2005-11-17

    申请号:US10832152

    申请日:2004-04-26

    申请人: Allan Kielstra

    发明人: Allan Kielstra

    IPC分类号: G06F11/00

    CPC分类号: G06F8/4441

    摘要: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.

    摘要翻译: 在编译期间修改用于检查程序代码中的数组访问的错误处理操作。 找到顺序布置的空检查操作和阵列访问的数组边界检查操作。 数组边界检查操作具有相应的错误处理操作,可用于设置数组边界错误。 删除位置顺序排列的空检查操作。 修改位置顺序排列的数组边界检查操作的相应的错误处理操作,以在执行程序代码期间执行去除的空检查操作。

    Method, system and product for identifying and executing locked read regions and locked write regions in programming languages that offer synchronization without explicit means to distinguish between such regions
    9.
    发明申请
    Method, system and product for identifying and executing locked read regions and locked write regions in programming languages that offer synchronization without explicit means to distinguish between such regions 失效
    用于在编程语言中识别和执行锁定读取区域和锁定写入区域的方法,系统和产品,其提供同步而没有明确的方式来区分这些区域

    公开(公告)号:US20050198626A1

    公开(公告)日:2005-09-08

    申请号:US11012364

    申请日:2004-12-15

    CPC分类号: G06F9/52

    摘要: A technique for identifying and executing synchronized read regions and synchronized write regions is provided. The technique processes program code with a software tool to convert the code to an internal representation for the software tool and constructs a control flow graph of code blocks which also identifies the entry and exit points for each region of code subject to a lock. For each code block in the control flow graph, visibility analysis is performed. Each determined entry and exit point is moved to enclose the smallest set of code blocks subject to a lock which can be achieved without altering code semantics. A set of trees is created to represent the manner in which the synchronized regions are nested. If the tree contains at least one block previously identified, then the tree is marked a write. Otherwise, the tree is marked a read tree. A write lock is then created for the region in each tree identified as a write tree and a read lock is created for the regions in each tree identified as a read tree.

    摘要翻译: 提供了用于识别和执行同步读取区域和同步写入区域的技术。 该技术使用软件工具处理程序代码,以将代码转换为软件工具的内部表示,并构建代码块的控制流程图,该代码块还识别受到锁定的每个代码区域的入口点和出口点。 对于控制流图中的每个代码块,执行可视性分析。 每个确定的入口点和出口点被移动以包含受到锁定的最小代码块集合,可以在不改变代码语义的情况下实现。 创建一组树以表示同步区域嵌套的方式。 如果树包含至少一个先前识别的块,则树被标记为写。 否则,树被标记为读树。 然后,为识别为写树的每个树中的区域创建写锁,并为每个树中识别为读树的区域创建读锁。