-
公开(公告)号:US20120030659A1
公开(公告)日:2012-02-02
申请号:US12847904
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
IPC分类号: G06F9/45
CPC分类号: G06F8/4443 , G06F8/443
摘要: Techniques for processing computer code are disclosed. In one example, an indication that a computer code is to begin execution at a portion of code other than a starting portion of the code is received, and a runtime state associated with the portion of the code at which execution is to begin is constructed. In some examples, execution of the portion of code is initiated. In some examples, a program counter associated with the portion of the code is used to initiate execution of the code. In some examples, the computer code comprises a fallback code associated with a previously executing code.
摘要翻译: 公开了处理计算机代码的技术。 在一个示例中,接收到计算机代码要在代码的起始部分之外的代码部分开始执行的指示,并且构建与要开始执行的代码部分相关联的运行时状态。 在一些示例中,启动代码部分的执行。 在一些示例中,与代码的该部分相关联的程序计数器被用于启动代码的执行。 在一些示例中,计算机代码包括与先前执行的代码相关联的回退代码。
-
公开(公告)号:US09195486B2
公开(公告)日:2015-11-24
申请号:US12847945
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
CPC分类号: G06F9/45525 , G06F8/4441 , 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.
摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。
-
公开(公告)号:US09146759B2
公开(公告)日:2015-09-29
申请号:US12847925
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
CPC分类号: G06F9/45525 , G06F8/4441
摘要: Techniques for processing source code written in a traditionally interpreted language such as JavaScript, or another dynamic and/or interpreted language, are disclosed. In one example, compiled code associated with the source code is constructed and executed. An assumption on which a specific aspect of the compiled code is based (e.g., an optimization) is tested at a checkpoint of the compiled code. A roll over to fallback code is performed if the test indicates the assumption is not true.
摘要翻译: 公开了用于处理以传统解释语言(例如JavaScript)或其他动态和/或解释语言编写的源代码的技术。 在一个示例中,构建并执行与源代码相关联的编译代码。 在编译代码的检查点测试编译代码的特定方面所基于的假设(例如优化)。 如果测试表明假设不正确,则执行回滚代码。
-
公开(公告)号:US20120030653A1
公开(公告)日:2012-02-02
申请号:US12847925
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
IPC分类号: G06F9/44
CPC分类号: G06F9/45525 , G06F8/4441
摘要: Techniques for processing source code written in a traditionally interpreted language such as JavaScript, or another dynamic and/or interpreted language, are disclosed. In one example, compiled code associated with the source code is constructed and executed. An assumption on which a specific aspect of the compiled code is based (e.g., an optimization) is tested at a checkpoint of the compiled code. A roll over to fallback code is performed if the test indicates the assumption is not true.
摘要翻译: 公开了用于处理以传统解释语言(例如JavaScript)或其他动态和/或解释语言编写的源代码的技术。 在一个示例中,构建并执行与源代码相关联的编译代码。 在编译代码的检查点处测试编译代码的特定方面(例如,优化)的假设。 如果测试表明假设不正确,则执行回滚代码。
-
公开(公告)号:US08561045B2
公开(公告)日:2013-10-15
申请号:US12847904
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
IPC分类号: G06F9/45
CPC分类号: G06F8/4443 , G06F8/443
摘要: Techniques for processing computer code are disclosed. In one example, an indication that a computer code is to begin execution at a portion of code other than a starting portion of the code is received, and a runtime state associated with the portion of the code at which execution is to begin is constructed. In some examples, execution of the portion of code is initiated. In some examples, a program counter associated with the portion of the code is used to initiate execution of the code. In some examples, the computer code comprises a fallback code associated with a previously executing code.
摘要翻译: 公开了处理计算机代码的技术。 在一个示例中,接收到计算机代码要在代码的起始部分之外的代码部分开始执行的指示,并且构建与要开始执行的代码部分相关联的运行时状态。 在一些示例中,启动代码部分的执行。 在一些示例中,与代码的该部分相关联的程序计数器被用于启动代码的执行。 在一些示例中,计算机代码包括与先前执行的代码相关联的回退代码。
-
公开(公告)号:US20120030661A1
公开(公告)日:2012-02-02
申请号:US12847945
申请日:2010-07-30
申请人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
发明人: Victor Leonel Hernandez Porras , Christopher Arthur Lattner , Jia-Hong Chen , Eric Marshall Christopher , Roger Scott Hoover , Francois Jouaux , Robert John McCall , Thomas John O'Brien , Pratik Solanki
IPC分类号: G06F9/45
CPC分类号: G06F9/45525 , G06F8/4441 , 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.
摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。
-
公开(公告)号:US20100153912A1
公开(公告)日:2010-06-17
申请号:US12316768
申请日:2008-12-15
申请人: Victor Leonel Hernandez Porras , Roger Scott Hoover , Eric Marshall Christopher , Christopher Arthur Lattner , Thomas John O'Brien , Pratik Solanki , Jia-Hong Chen
发明人: Victor Leonel Hernandez Porras , Roger Scott Hoover , Eric Marshall Christopher , Christopher Arthur Lattner , Thomas John O'Brien , Pratik Solanki , Jia-Hong Chen
IPC分类号: G06F9/44
CPC分类号: G06F8/49
摘要: Variable type knowledge based call specialization is disclosed. An indication is received that a variable that is an argument of a function or operation the behavior of which depends at least in part on a data type of the argument is of a first data type. Machine code that implements a first behavior that corresponds to the first data type, but not a second behavior that corresponds to a second data type other than the first data type, is generated for the function or operation.
摘要翻译: 公开了基于变数类型知识的呼叫专业化。 接收到指示作为其行为至少部分取决于参数的数据类型的功能或操作的参数的变量的变量是第一数据类型。 为功能或操作生成实现与第一数据类型对应的第一行为但不是与第一数据类型不同的第二数据类型的第二行为的机器代码。
-
8.
公开(公告)号:US08752016B2
公开(公告)日:2014-06-10
申请号:US12316730
申请日:2008-12-15
申请人: Victor Leonel Hernandez Porras , Thomas John O'Brien , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher , Pratik Solanki , Jia-Hong Chen , Michael Alan Kahl
发明人: Victor Leonel Hernandez Porras , Thomas John O'Brien , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher , Pratik Solanki , Jia-Hong Chen , Michael Alan Kahl
IPC分类号: G06F9/44
摘要: 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.
摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。
-
9.
公开(公告)号:US20100153929A1
公开(公告)日:2010-06-17
申请号:US12316730
申请日:2008-12-15
申请人: Victor Leonel Hernandez Porras , Thomas John O'Brien , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher , Pratik Solanki , Jia-Hong Chen , Michael Alan Kahl
发明人: Victor Leonel Hernandez Porras , Thomas John O'Brien , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher , Pratik Solanki , Jia-Hong Chen , Michael Alan Kahl
IPC分类号: G06F9/45
摘要: 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.
摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。
-
10.
公开(公告)号:US07296257B1
公开(公告)日:2007-11-13
申请号:US10211933
申请日:2002-08-01
CPC分类号: G06F9/4486 , G06F8/41 , G06F2209/481
摘要: 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)延迟状态,则该方案还可以被实施为非重写表。
-
-
-
-
-
-
-
-
-