Process for processing programs, process for detecting depth of frame associated with specified method, detection method, and computer
    1.
    发明授权
    Process for processing programs, process for detecting depth of frame associated with specified method, detection method, and computer 失效
    处理程序的过程,用于检测与指定方法相关联的帧深度的处理,检测方法和计算机

    公开(公告)号:US06363521B1

    公开(公告)日:2002-03-26

    申请号:US09306007

    申请日:1999-05-06

    IPC分类号: A61F224

    CPC分类号: G06F9/4491

    摘要: The present invention is directed to expanding the scope of execution optimization by method inlining in a language with a security facility such as Java. More particularly, the present invention is directed to a step of generating a code necessary for looping by a tail recursion for a first method including an invocation of a method whose process after its invocation is indefinite and which includes a self recursion, and a step of generating a code for counting the number of iterations of the loop are included. SecurityManager corrects the depth of the frame associated with a second method in the storage area by using the count value by the code for counting the number of iterations of the loop. It also includes the steps of: inlining a code of the first method into the second method, wherein the second method includes an invocation of the first method whose process after its invocation is indefinite; getting the invocation relationship information between the first and the second methods in a state before inlining the code of the first method, and storing the invocation relationship information into a storage area available later; and generating a code for storing information about the first method being executed when the code of the inlined first method is executed. SecurityManager traces the stack with generated invocation relationship information.

    摘要翻译: 本发明旨在通过利用诸如Java之类的安全设施的语言内联方法来扩展执行优化的范围。 更具体地说,本发明是针对第一种方法,通过尾递归生成循环所必需的代码的步骤,该第一方法包括调用其调用后的过程不确定并包括自递归的方法的调用,以及步骤 生成用于对循环的迭代次数进行计数的代码。 SecurityManager通过使用计数值来计算存储区域中与第二种方法相关联的帧的深度来计算循环次数。 它还包括以下步骤:将第一种方法的代码内联到第二种方法中,其中第二种方法包括调用其调用后的过程不确定的第一种方法; 在第一方法的代码内嵌之前的状态下获取第一和第二方法之间的调用关系信息,并将调用关系信息存储在稍后可用的存储区域中; 以及当执行所述内联第一方法的代码时,生成用于存储关于正在执行的所述第一方法的信息的代码。 SecurityManager跟踪生成的调用关系信息的堆栈。

    Method and apparatus for generating code for array range check and method and apparatus for versioning
    4.
    发明授权
    Method and apparatus for generating code for array range check and method and apparatus for versioning 有权
    用于生成阵列范围检查代码的方法和装置以及用于版本控制的方法和装置

    公开(公告)号:US06665864B1

    公开(公告)日:2003-12-16

    申请号:US09473858

    申请日:1999-12-28

    IPC分类号: G06F945

    CPC分类号: G06F8/443

    摘要: The present invention eliminates redundant array range checks. A two-phased check is performed, namely a wide range check is performed by combining a plurality of array range checks, and a strict range check is unsuccessful, so as to reduce the number of range checks at execution time and allow execution at high speed. For instance, it is possible with a processor such as PowerPC, by using a flag, to invalidate a code for performing an array range check at high speed without increasing a code size. Consequently, the number of array range checks to be executed can be reduced so as to allow execution at high speed. Also, for instance, a plurality of array range checks can be combined without considering existence of instructions which cause a side effect. Consequently, the number of array range checks to be executed can be reduced so as to allow execution at high speed. In addition, a versioning is performed by using, as array access information for versioning, information of array access information for versioning information of array accesses which are always performed even if passing through any execution path in a loop so that there are fewer cases where it goes to a version with a larger number of array range checks at execution time.

    摘要翻译: 本发明消除了冗余阵列范围检查。 执行两阶段检查,即通过组合多个阵列范围检查来进行宽范围检查,并且严格范围检查不成功,以便在执行时减少范围检查的数量并允许高速执行 。 例如,通过使用标志,诸如PowerPC的处理器可以在不增加代码大小的情况下使用于高速执行阵列范围检查的代码无效。 因此,可以减少要执行的阵列范围检查的数量,以便允许高速执行。 此外,例如,可以组合多个阵列范围检查,而不考虑存在导致副作用的指令。 因此,可以减少要执行的阵列范围检查的数量,以便允许高速执行。 另外,通过使用用作版本控制的数组访问信息来执行版本控制,即使通过循环中的任何执行路径也始终执行的阵列访问的版本控制信息的数组访问信息的信息,从而存在更少的情况 在执行时转到具有更大数量的数组范围检查的版本。

    COMPILATION AND RUNTIME INFORMATION GENERATION AND OPTIMIZATION
    5.
    发明申请
    COMPILATION AND RUNTIME INFORMATION GENERATION AND OPTIMIZATION 有权
    编译和运行信息生成与优化

    公开(公告)号:US20080162909A1

    公开(公告)日:2008-07-03

    申请号:US11972912

    申请日:2008-01-11

    IPC分类号: G06F9/30

    CPC分类号: G06F8/443

    摘要: To collect frequencies with which processes of a program are executed at high speed. A compiler apparatus for optimizing a program based on frequencies with which each process is executed has a loop process detection portion for detecting a repeatedly executed loop process of the program, a loop process frequency collection portion for collecting loop process frequencies with which the loop process is executed in the program, an in-loop process frequency collection portion for collecting in-loop process frequencies with which, as against times of execution of loop process, each of a plurality of in-loop processes included in the loop process is executed, an in-loop execution information generating portion for generating in-loop execution information indicating the frequencies with which each of the plurality of in-loop processes is executed in the case where the program is executed, and an optimization portion for optimizing the program based on the in-loop execution information.

    摘要翻译: 收集高速执行程序进程的频率。 一种用于基于执行每个处理的频率对程序进行优化的编译装置,具有循环处理检测部分,用于检测程序的重复执行的循环处理;循环处理频率收集部分,用于收集循环处理频率 在程序中执行的循环过程频率收集部分,用于收集循环处理频率,与执行循环处理的次数相比,执行循环处理中包括的多个循环中的每个处理,执行 循环执行信息生成部分,用于在执行程序的情况下,生成指示执行多个循环中每个处理的频率的循环执行信息;以及优化部分,用于基于 循环执行信息。

    Prefetching apparatus, prefetching method and prefetching program product
    6.
    发明申请
    Prefetching apparatus, prefetching method and prefetching program product 有权
    预取设备,预取方法和预取程序产品

    公开(公告)号:US20070005905A1

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

    申请号:US11377518

    申请日:2006-03-15

    IPC分类号: G06F13/28

    CPC分类号: G06F9/383 G06F9/3832

    摘要: The efficient performance of prefetching of data prior to the reading of the data by a program. A prefetching apparatus, for prefetching data from a file to a buffer before the data is read by a program, includes: a history recorder, for recording a history for a plurality of data readings issued by the program while performing data reading; a prefetching generator, for generating a plurality of prefetchings that correspond to the plurality of data readings recorded in the history; a prefetching process determination unit, for determining, based on the history, the performance order for the plurality of prefetchings; and a prefetching unit, for performing, when following the determination of the performance order the program is executed, the plurality of prefetchings in the performance order.

    摘要翻译: 在程序读取数据之前预取数据的有效性能。 一种用于在由程序读取数据之前将数据从文件预取到缓冲器的预取装置包括:历史记录器,用于在执行数据读取时记录由程序发出的多个数据读取的历史; 预取生成器,用于生成对应于记录在历史中的多个数据读数的多个预取取; 预取处理确定单元,用于基于历史确定多个预取取的表现顺序; 以及预取单元,用于当执行所述程序的执行顺序的确定时,执行所述执行顺序中的所述多个预取。

    Method and apparatus for eliminating redundant array range checks in a compiler
    7.
    发明授权
    Method and apparatus for eliminating redundant array range checks in a compiler 失效
    用于在编译器中消除冗余阵列范围检查的方法和装置

    公开(公告)号:US06519765B1

    公开(公告)日:2003-02-11

    申请号:US09350242

    申请日:1999-07-09

    IPC分类号: G06F944

    CPC分类号: G06F8/43 G06F8/443

    摘要: Java language is, as its specification, capable of detecting an access exceeding an array range, and when there is no user-defined exception handler, moving control to an invoked method after getting out of a method in which an exception occurred, or when there is a user-defined exception handler, moving the process to the exception handler. Accordingly, an array range check is essential since occurrence of an exception may be described as a correct operation. However, an array range check slows execution speed compared with a language which does not require it. In an actual program, there is an array access to ensure that there is no access exceeding a range, and thus elimination of such redundant range checks greatly contributes to improved performance, and in addition, brings about an effect of expanding the range of optimization from the viewpoint of ensuring order of execution between occurrence of an exception and a process with a side effect such as an assignment of a value to an array.

    摘要翻译: Java语言正如其规范那样能够检测到超出数组范围的访问,当没有用户定义的异常处理程序时,在得到发生异常的方法之后将控制移动到被调用的方法,或者在那里 是一个用户定义的异常处理程序,将进程移动到异常处理程序。 因此,阵列范围检查是重要的,因为异常的发生可以被描述为正确的操作。 但是,与不需要的语言相比,数组范围检查会降低执行速度。 在一个实际的程序中,有一个阵列访问,以确保没有超出范围的访问,因此消除这种冗余范围检查大大有助于提高性能,另外还带来了扩大优化范围的效果 确保异常发生之间的执行顺序与具有副作用(例如将值分配给数组)的处理的观点。

    Program execution method using an optimizing just-in-time compiler
    8.
    发明授权
    Program execution method using an optimizing just-in-time compiler 失效
    使用优化即时编译器的程序执行方法

    公开(公告)号:US07665079B1

    公开(公告)日:2010-02-16

    申请号:US09708159

    申请日:2000-11-08

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: It is one object of the present invention to provide a program execution method for performing greater optimization. A program execution apparatus according to the present invention performs a transfer from an interpreter process to a compiled code process in the course of the execution of a method. At this time, if no problem occurs when a transfer point is moved to the top of a loop, the transfer point for code is so moved. And when a transfer point is located inside a loop, a point that post-dominates the top of the loop and the transfer point is copied to a position immediately preceding the loop. Then, information for generating recalculation code is provided for the transfer point, and a recalculation is performed.

    摘要翻译: 本发明的一个目的是提供一种执行更大优化的程序执行方法。 根据本发明的程序执行装置在执行方法的过程中执行从解释器处理到编译代码处理的传送。 此时,如果转移点移动到循环的顶部没有问题,代码的转移点就被移动。 而当一个转移点位于一个循环内部时,后面支配循环顶点和转移点的点被复制到循环之前的一个位置。 然后,为传送点提供用于产生重新计算代码的信息,并且执行重新计算。

    Prefetching apparatus, prefetching method and prefetching program product
    9.
    发明授权
    Prefetching apparatus, prefetching method and prefetching program product 有权
    预取设备,预取方法和预取程序产品

    公开(公告)号:US07383417B2

    公开(公告)日:2008-06-03

    申请号:US11377518

    申请日:2006-03-15

    IPC分类号: G06F9/26 G06F9/34 G06F12/00

    CPC分类号: G06F9/383 G06F9/3832

    摘要: The efficient performance of prefetching of data prior to the reading of the data by a program. A prefetching apparatus, for prefetching data from a file to a buffer before the data is read by a program, includes: a history recorder, for recording a history for a plurality of data readings issued by the program while performing data reading; a prefetching generator, for generating a plurality of prefetchings that correspond to the plurality of data readings recorded in the history; a prefetching process determination unit, for determining, based on the history, the performance order for the plurality of prefetchings; and a prefetching unit, for performing, when following the determination of the performance order the program is executed, the plurality of prefetchings in the performance order.

    摘要翻译: 在程序读取数据之前预取数据的有效性能。 一种用于在由程序读取数据之前将数据从文件预取到缓冲器的预取装置包括:历史记录器,用于在执行数据读取时记录由程序发出的多个数据读取的历史; 预取生成器,用于生成对应于记录在历史中的多个数据读数的多个预取取; 预取处理确定单元,用于基于历史确定多个预取取的表现顺序; 以及预取单元,用于当执行所述程序的执行顺序的确定时,执行所述执行顺序中的所述多个预取。

    Method using array range check information for generating versioning code before a loop for execution
    10.
    发明授权
    Method using array range check information for generating versioning code before a loop for execution 失效
    使用数组范围检查信息在循环执行之前生成版本代码的方法

    公开(公告)号:US07260817B2

    公开(公告)日:2007-08-21

    申请号:US10334180

    申请日:2002-12-30

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437 G06F8/4441

    摘要: A system and method are provided that in one aspect eliminate redundant array range checks by performing a versioning for a loop. In another aspect, a system and method optimize array range checks by performing data-flow analysis in reverse order of the program execution. Yet in another aspect, a system and method obtains information about array ranges already checked by performing data-flow analysis in program execution order and eliminate redundant array range checks from this information.

    摘要翻译: 提供了一种系统和方法,其一方面通过执行循环的版本控制来消除冗余阵列范围检查。 在另一方面,系统和方法通过以与程序执行相反的顺序执行数据流分析来优化阵列范围检查。 另一方面,系统和方法通过以程序执行顺序执行数据流分析获得已经检查的数组范围的信息,并从该信息中消除冗余阵列范围检查。