-
1.
公开(公告)号: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.
摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。
-
2.
公开(公告)号: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.
摘要翻译: 生成源代码的与设备无关的中间表示,并且例如存储在存储器或其它存储机制中。 存储的源代码的中间表示用于生成与源代码对应的特定于设备的机器代码。 可以例如通过获得源代码的更新版本并编译更新的源代码来生成更新的中间表示,来例如周期性地更新存储的中间表示。 存储的中间表示可以基于从与生成特定于设备的机器码的编译设备与其同步的设备接收的源代码。 在一些情况下,存储的中间表示可以用于为多个设备中的每一个产生相应的设备专用机器码。
-
公开(公告)号: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.
摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。
-
公开(公告)号: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.
摘要翻译: 公开了处理计算机代码的技术。 在一个示例中,接收到计算机代码要在代码的起始部分之外的代码部分开始执行的指示,并且构建与要开始执行的代码部分相关联的运行时状态。 在一些示例中,启动代码部分的执行。 在一些示例中,与代码的该部分相关联的程序计数器被用于启动代码的执行。 在一些示例中,计算机代码包括与先前执行的代码相关联的回退代码。
-
公开(公告)号: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)或其他动态和/或解释语言编写的源代码的技术。 在一个示例中,构建并执行与源代码相关联的编译代码。 在编译代码的检查点处测试编译代码的特定方面(例如,优化)的假设。 如果测试表明假设不正确,则执行回滚代码。
-
公开(公告)号: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.
摘要翻译: 公开了基于变数类型知识的呼叫专业化。 接收到指示作为其行为至少部分取决于参数的数据类型的功能或操作的参数的变量的变量是第一数据类型。 为功能或操作生成实现与第一数据类型对应的第一行为但不是与第一数据类型不同的第二数据类型的第二行为的机器代码。
-
公开(公告)号: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.
摘要翻译: 公开了基于观察和分析的软件代码优化。 为执行关联的软件代码之前无法确定的动态属性选择期望值,以确保在运行时具有该预期值。 生成软件代码的优化版本,包括基于动态属性将具有期望值的假设的一个或多个优化。 动态属性的非穷尽示例包括可变类型; 记忆中的位置 存储全局对象,属性或变量的位置; 全局函数或方法的内容; 和全局属性或变量的值。 在执行已经基于该假设优化的部分之前,在执行软件代码的优化版本期间执行检查,以验证动态属性具有期望值。 在运行时确定动态属性不具有预期值的情况下,执行将恢复为不基于动态属性具有期望值的假设的备份代码。
-
公开(公告)号:US08806457B2
公开(公告)日:2014-08-12
申请号:US12316761
申请日:2008-12-15
申请人: Victor Leonel Hernandez Porras , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher
发明人: Victor Leonel Hernandez Porras , Roger Scott Hoover , Christopher Arthur Lattner , Eric Marshall Christopher
摘要: Deferred constant pool generation is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is used to generate a constant pool. In some embodiments, the source code comprises JavaScript, which is used to generate a low level virtual machine (LLVM) or other intermediate representation (IR), which intermediate representation is optimized prior to a constant pool being generated.
摘要翻译: 公开延期常数池生成。 针对源代码的中间表示执行优化处理。 优化的中间表示用于生成常量池。 在一些实施例中,源代码包括JavaScript,其用于生成低级虚拟机(LLVM)或其他中间表示(IR),该中间表示在生成常量池之前被优化。
-
-
-
-
-
-
-
-
-