Observation and analysis based code optimization
    2.
    发明授权
    Observation and analysis based code optimization 有权
    基于观察和分析的代码优化

    公开(公告)号:US09195486B2

    公开(公告)日:2015-11-24

    申请号:US12847945

    申请日:2010-07-30

    IPC分类号: G06F9/45 G06F9/455 G06F11/30

    摘要: Observation and analysis based optimization of software code is disclosed. An expected value is chosen for a dynamic attribute that cannot be determined, prior to execution of the associated software code, to be guaranteed to have that expected value at runtime. An optimized version of the software code is generated, including one or more optimizations based on an assumption that the dynamic attribute will have the expected value. Non-exhaustive examples of a dynamic attribute include a variable type; a location in memory; a location in which a global object, property, or variable is stored; the contents of a global function or method; and a value of a global property or variable. A check is performed during execution of the optimized version of the software code, prior to executing the portion that has been optimized based on the assumption, to verify that the dynamic attribute has the expected value. In the event that it is determined at runtime that the dynamic attribute does not have the expected value, execution reverts to backup code that is not based on the assumption that dynamic attribute will have the expected value.

    摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。

    OBSERVATION AND ANALYSIS BASED CODE OPTIMIZATION
    6.
    发明申请
    OBSERVATION AND ANALYSIS BASED CODE OPTIMIZATION 有权
    基于观察和分析的代码优化

    公开(公告)号:US20120030661A1

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

    申请号:US12847945

    申请日:2010-07-30

    IPC分类号: G06F9/45

    摘要: Observation and analysis based optimization of software code is disclosed. An expected value is chosen for a dynamic attribute that cannot be determined, prior to execution of the associated software code, to be guaranteed to have that expected value at runtime. An optimized version of the software code is generated, including one or more optimizations based on an assumption that the dynamic attribute will have the expected value. Non-exhaustive examples of a dynamic attribute include a variable type; a location in memory; a location in which a global object, property, or variable is stored; the contents of a global function or method; and a value of a global property or variable. A check is performed during execution of the optimized version of the software code, prior to executing the portion that has been optimized based on the assumption, to verify that the dynamic attribute has the expected value. In the event that it is determined at runtime that the dynamic attribute does not have the expected value, execution reverts to backup code that is not based on the assumption that dynamic attribute will have the expected value.

    摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。

    Converting JavaScript into a device-independent representation
    8.
    发明授权
    Converting JavaScript into a device-independent representation 有权
    将JavaScript转换为与设备无关的表示

    公开(公告)号:US08752016B2

    公开(公告)日:2014-06-10

    申请号:US12316730

    申请日:2008-12-15

    IPC分类号: G06F9/44

    CPC分类号: G06F8/71 G06F8/47

    摘要: A device-independent intermediate representation of a source code is generated and stored, e.g., in a memory or other storage mechanism. The stored intermediate representation of the source code is used to generate a device-specific machine code corresponding to the source code. The stored intermediate representation may be updated, e.g., periodically, for example by obtaining an updated version of the source code and compiling the updated source code to generate an updated intermediate representation. The stored intermediate representation may be based on source code received from a device that is synchronized with which a compiling device that generates the device-specific machine code. In some cases, the stored intermediate representation may be used to generate for each of a plurality of devices a corresponding device-specific machine code.

    摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。

    Converting javascript into a device-independent representation
    9.
    发明申请
    Converting javascript into a device-independent representation 有权
    将javascript转换为与设备无关的表示

    公开(公告)号:US20100153929A1

    公开(公告)日:2010-06-17

    申请号:US12316730

    申请日:2008-12-15

    IPC分类号: G06F9/45

    CPC分类号: G06F8/71 G06F8/47

    摘要: A device-independent intermediate representation of a source code is generated and stored, e.g., in a memory or other storage mechanism. The stored intermediate representation of the source code is used to generate a device-specific machine code corresponding to the source code. The stored intermediate representation may be updated, e.g., periodically, for example by obtaining an updated version of the source code and compiling the updated source code to generate an updated intermediate representation. The stored intermediate representation may be based on source code received from a device that is synchronized with which a compiling device that generates the device-specific machine code. In some cases, the stored intermediate representation may be used to generate for each of a plurality of devices a corresponding device-specific machine code.

    摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。

    Techniques for exception handling by rewriting dispatch table elements
    10.
    发明授权
    Techniques for exception handling by rewriting dispatch table elements 有权
    通过重写调度表元素来进行异常处理的技术

    公开(公告)号:US07296257B1

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

    申请号:US10211933

    申请日:2002-08-01

    IPC分类号: G06F9/45 G06F9/44 G06F11/00

    摘要: A technique for implementing a data processor to determine if an exception has been thrown. Specifically, the technique may be used in an interpretive environment where a table known as a bytecode (upcode) dispatch table is used. The dispatch table contains addresses for code that implements each bytecode. When the interpreter executes normally, these addresses point to the basic target machine code for executing each bytecode. However, when an Asynchrounously Interrupted Exception (AIE) is thrown, then the dispatch table is repopulated so that all byte codes point to routines that can handle the exception. These may point to a routine, such as an athrow, that has been extended to handle the special case of the AIE. Alternatively, the rewritten table can point to a routine that is specifically written to handle the firing of an AIE. The table contents are restored to their prior state once the exception handling is complete. The scheme may also be implemented non-rewriting of the table if a thread is in a non-Asynchronous Transfer of Control (to defer ATC) deferred state.

    摘要翻译: 一种用于实现数据处理器以确定是否抛出异常的技术。 具体地说,该技术可以用在其中使用称为字节码(upcode)调度表的表的解释环境中。 分派表包含实现每个字节码的代码的地址。 当解释器正常执行时,这些地址指向用于执行每个字节码的基本目标机器代码。 但是,当抛出异步中断异常(AIE)时,调度表被重新填充,以便所有字节代码指向可以处理异常的例程。 这些可能指向已经扩展到处理AIE的特殊情况的例行程序,例如运动员。 或者,重写的表可以指向专门写入以处理AIE的触发的例程。 一旦异常处理完成,表内容将恢复到其先前的状态。 如果线程处于非异步控制转移(延迟ATC)延迟状态,则该方案还可以被实施为非重写表。