Method and apparatus for performing byte-code optimization during pauses
    1.
    发明授权
    Method and apparatus for performing byte-code optimization during pauses 有权
    在暂停期间执行字节码优化的方法和装置

    公开(公告)号:US06865734B2

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

    申请号:US09836916

    申请日:2001-04-17

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F9/45

    摘要: Methods and apparatus for dynamically compiling byte codes associated with methods during idle periods in the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. In some embodiments, methods to be dynamically compiled are referenced in one or more lists. The lists may be prioritized to facilitate the compilation of the highest priority methods first. In one embodiment, a pair of compilation lists are provided with a first one of the compilation lists being created prior to processing the computer program while the other is created during the processing of the computer program.

    摘要翻译: 公开了在执行计算机程序期间动态地编译与空闲期间中的方法相关联的字节码的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 在一些实施例中,要被动态编译的方法在一个或多个列表中被引用。 可以优先列出列表以便于首先编译最高优先级的方法。 在一个实施例中,提供一对编译列表,其中编译列表中的第一个在处理计算机程序之前被创建,而另一个在计算机程序的处理期间被创建。

    Static binding of dynamically-dispatched calls in the presence of dynamic linking and loading

    公开(公告)号:US06704927B1

    公开(公告)日:2004-03-09

    申请号:US09265770

    申请日:1999-03-10

    IPC分类号: G06F945

    摘要: Techniques for performing static binding of dispatched-calls in the presence of dynamic linking and loading are provided. A method for increasing the execution performance of a function at run-time includes compiling the function, which may either be interpreted or previously compiled, and identifying a call within the function to a process. The method also includes adding dependency information to the function. The dependency information is arranged to indicate a status of the function, and contains information pertaining to the class, the name, and the signature associated with the process. In one embodiment, the process is a virtual process, and the method includes analyzing a class structure associated with the function in order to determine when the virtual process is a substantially unique target of the call. In such an embodiment, the virtual process may be inlined into the function when it is determined that the virtual process is the substantially unique target of the call.

    Method and apparatus for dynamically deoptimizing compiled activations
    3.
    发明授权
    Method and apparatus for dynamically deoptimizing compiled activations 失效
    动态优化编译激活的方法和装置

    公开(公告)号:US06240547B1

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

    申请号:US09336123

    申请日:1999-06-18

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F945

    摘要: Methods and apparatus for dynamically deoptimizing a frame in a control stack during the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. According to one aspect of the present invention, a computer-implemented method for deoptimizing a compiled method includes creating a data structure. The data structure, which is separate from the control stack, is arranged to store information relating to the compiled method. A reference indicator, such as a pointer, is created to associate the data structure with the frame. The method, which is compiled to a first state of optimization, is then deoptimized to a second state of optimization, and the method in the first state of optimization may be discarded, thereby deoptimizing the frame. When control returns to the deoptimized frame, a migration routine creates at least one new stack frame, and execution may continue using the method in the second state of optimization.

    摘要翻译: 公开了在执行计算机程序期间动态地优化控制堆栈中的帧的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 根据本发明的一个方面,一种用于去优化编译方法的计算机实现方法包括创建数据结构。 与控制堆栈分离的数据结构被布置为存储与编译方法有关的信息。 创建诸如指针的参考指示符以将数据结构与帧相关联。 然后将被编译为第一优化状态的方法去优化到第二优化状态,并且可以丢弃第一优化状态中的方法,从而优化帧。 当控制返回到最优化帧时,迁移例程创建至少一个新的堆栈帧,并且执行可以在第二优化状态中继续使用该方法。

    Inline database for receiver types in object-oriented systems
    4.
    发明授权
    Inline database for receiver types in object-oriented systems 失效
    面向对象系统中接收器类型的内联数据库

    公开(公告)号:US06317796B1

    公开(公告)日:2001-11-13

    申请号:US08944332

    申请日:1997-10-06

    申请人: Lars Bak Urs Hölzle

    发明人: Lars Bak Urs Hölzle

    IPC分类号: G06F954

    CPC分类号: G06F9/4491

    摘要: Systems and methods for implementing message dispatch for an object-oriented program are provided. Receiver type information is collected at a site of a method that dispatches messages to receiver objects. The receiver type information is saved for subsequent execution of the program. By saving the receiver type information, the program may be more efficient as it is not necessary to collect the receiver type information again. Additionally, inlining information may be saved with the receiver type information.

    摘要翻译: 提供了一种用于实现面向对象程序的消息发送的系统和方法。 接收器类型信息在将消息分派给接收器对象的方法的站点处收集。 保存接收器类型信息以便随后执行程序。 通过保存接收器类型信息,程序可能更有效,因为不需要再次收集接收器类型信息。 此外,可以使用接收器类型信息来保存内联信息。

    Mixed execution stack and exception handling
    5.
    再颁专利
    Mixed execution stack and exception handling 有权
    混合执行堆栈和异常处理

    公开(公告)号:USRE39519E1

    公开(公告)日:2007-03-13

    申请号:US10884826

    申请日:2004-07-01

    IPC分类号: G06F9/40

    摘要: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.

    摘要翻译: 提供了用于实现用于以多种编程语言编写的功能来存储帧的执行堆栈的系统和方法。 以不同编程语言编写的函数的帧可以在相同的执行堆栈上进行交织。 可以利用执行堆栈上的数据块通过将堆栈指针和帧指针存储到前一帧来遍历帧周围的执行堆栈。 另外,异常可以传播,如果需要,通过转换,通过使用不同编程语言编写的执行堆栈上的帧。

    Mixed execution stack and exception handling
    6.
    发明授权
    Mixed execution stack and exception handling 有权
    混合执行堆栈和异常处理

    公开(公告)号:US06415381B1

    公开(公告)日:2002-07-02

    申请号:US09416373

    申请日:1999-10-12

    IPC分类号: G06F940

    摘要: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.

    摘要翻译: 提供了用于实现用于以多种编程语言编写的功能来存储帧的执行堆栈的系统和方法。 以不同编程语言编写的函数的帧可以在相同的执行堆栈上进行交织。 可以利用执行堆栈上的数据块通过将堆栈指针和帧指针存储到前一帧来遍历帧周围的执行堆栈。 另外,异常可以传播,如果需要,通过转换,通过使用不同编程语言编写的执行堆栈上的帧。

    Method and apparatus for performing byte-code optimization during pauses
    7.
    发明授权
    Method and apparatus for performing byte-code optimization during pauses 有权
    在暂停期间执行字节码优化的方法和装置

    公开(公告)号:US06240548B1

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

    申请号:US09353124

    申请日:1999-07-14

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F71705

    CPC分类号: G06F8/48 G06F9/45516

    摘要: Methods and apparatus for dynamically compiling byte codes associated with methods during idle periods in the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. In some embodiments, methods to be dynamically compiled are referenced in one or more lists. The lists may be prioritized to facilitate the compilation of the highest priority methods first. In one embodiment, a pair of compilation lists are provided with a first one of the compilation lists being created prior to processing the computer program while the other is created during the processing of the computer program.

    摘要翻译: 公开了在执行计算机程序期间动态地编译与空闲期间中的方法相关联的字节码的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 在一些实施例中,要被动态编译的方法在一个或多个列表中被引用。 可以优先列出列表以便于首先编译最高优先级的方法。 在一个实施例中,提供一对编译列表,其中编译列表中的第一个在处理计算机程序之前被创建,而另一个在计算机程序的处理期间被创建。

    Inline database for receiver types in object-oriented systems
    8.
    发明授权
    Inline database for receiver types in object-oriented systems 有权
    面向对象系统中接收器类型的内联数据库

    公开(公告)号:US07137123B2

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

    申请号:US09896075

    申请日:2001-06-28

    申请人: Lars Bak Urs Hölzle

    发明人: Lars Bak Urs Hölzle

    IPC分类号: G06F9/44

    CPC分类号: G06F9/4491

    摘要: Systems and methods for implementing message dispatch for an object-oriented program are provided. Receiver type information is collected at a site of a method that dispatches messages to receiver objects. The receiver type information is saved for subsequent execution of the program. By saving the receiver type information, the program may be more efficient as it is not necessary to collect the receiver type information again. Additionally, inlining information may be saved with the receiver type information.

    摘要翻译: 提供了一种用于实现面向对象程序的消息发送的系统和方法。 接收器类型信息在将消息分派给接收器对象的方法的站点处收集。 保存接收器类型信息以便随后执行程序。 通过保存接收器类型信息,程序可能更有效,因为不需要再次收集接收器类型信息。 此外,可以使用接收器类型信息来保存内联信息。

    Method and apparatus for implementing fast subclass and subtype checks
    9.
    发明授权
    Method and apparatus for implementing fast subclass and subtype checks 失效
    用于实现快速子类和子类型检查的方法和装置

    公开(公告)号:US06714991B1

    公开(公告)日:2004-03-30

    申请号:US09107224

    申请日:1998-06-30

    IPC分类号: G06F900

    CPC分类号: G06F9/4492

    摘要: Methods and apparatus for performing fast subtype checks during program execution are disclosed. According to one aspect of the present invention, a method for determining whether a class associated with an object that is a part of an object-based computing system is a subtype of another type includes obtaining a candidate type from a dynamic storage location that is associated with a class which is associated with the object, and comparing the candidate type against a first type that is potentially the same as the candidate type. A determination is then made as to whether the candidate type is substantially equal to the first type. When the determination is that the candidate type is substantially equal to the first type, an indication that the candidate type is a subtype of the first type is provided. In one embodiment, the candidate type obtained from the dynamic storage location is obtained from a cache element in the class associated with the object.

    摘要翻译: 公开了在程序执行期间执行快速子类型检查的方法和装置。 根据本发明的一个方面,一种用于确定与作为基于对象的计算系统的一部分的对象相关联的类是否是另一类型的子类型的方法包括从相关联的动态存储位置获得候选类型 具有与对象相关联的类,并且将候选类型与潜在地与候选类型相同的第一类型进行比较。 然后确定候选类型是否基本上等于第一类型。 当确定候选类型基本上等于第一类型时,提供候选类型是第一类型的子类型的指示。 在一个实施例中,从与该对象相关联的类中的高速缓存元素获得从动态存储位置获得的候选类型。

    Method and apparatus for dynamically deoptimizing compiled activations
    10.
    发明授权
    Method and apparatus for dynamically deoptimizing compiled activations 有权
    动态优化编译激活的方法和装置

    公开(公告)号:US06601235B1

    公开(公告)日:2003-07-29

    申请号:US09844545

    申请日:2001-04-27

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F945

    摘要: Methods and apparatus for dynamically deoptimizing a frame in a control stack during the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. According to one aspect of the present invention, a computer-implemented method for deoptimizing a compiled method includes creating a data structure. The data structure, which is separate from the control stack, is arranged to store information relating to the compiled method. A reference indicator, such as a pointer, is created to associate the data structure with the frame. The method, which is compiled to a first state of optimization, is then deoptimized to a second state of optimization, and the method in the first state of optimization may be discarded, thereby deoptimizing the frame. When control returns to the deoptimized frame, a migration routine creates at least one new stack frame, and execution may continue using the method in the second state of optimization.

    摘要翻译: 公开了在执行计算机程序期间动态地优化控制堆栈中的帧的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 根据本发明的一个方面,一种用于去优化编译方法的计算机实现方法包括创建数据结构。 与控制堆栈分离的数据结构被布置为存储与编译方法有关的信息。 创建诸如指针的参考指示符以将数据结构与帧相关联。 然后将被编译为第一优化状态的方法去优化到第二优化状态,并且可以丢弃第一优化状态中的方法,从而优化帧。 当控制返回到最优化帧时,迁移例程创建至少一个新的堆栈帧,并且执行可以在第二优化状态中继续使用该方法。