Composite-trace just-in-time compilation

    公开(公告)号:US10929160B1

    公开(公告)日:2021-02-23

    申请号:US16218375

    申请日:2018-12-12

    Abstract: Systems and methods for just-in-time compilation are disclosed. The systems and methods can be used to generate composite blocks, reducing program execution time. The systems and methods can include generating single-trace blocks during program execution. Upon satisfaction of a trigger criterion, single-trace blocks can be selected for compilation into a composite block. The trigger criterion can be a number of executions of a trigger block. Selecting the single-trace blocks can include identifying blocks reachable from the trigger block, selecting a subset of the reachable blocks, and selecting an entry point for the composite block. The composite block can be generated from the single-trace blocks and incorporated into the program control flow, such that the composite block is executed in place of the selected single-trace blocks.

    Code generation and execution for dynamic programming languages
    4.
    发明授权
    Code generation and execution for dynamic programming languages 有权
    动态编程语言的代码生成和执行

    公开(公告)号:US09135027B1

    公开(公告)日:2015-09-15

    申请号:US14596852

    申请日:2015-01-14

    CPC classification number: G06F9/445 G06F9/4552

    Abstract: A device may identify a first compiled block with an original constraint and an additional constraint. The first compiled block may be identified based on a program counter value and may include compiled information relating to a first segment of program code, linking information associated with a second compiled block, and information distinguishing the original constraint from the additional constraint. The original constraint may relate to a type of variable used in the first segment of programming code. The additional constraint may relate to a variable used in a second segment of programming code associated with the second compiled block. The device may copy information of the first compiled block to generate a third compiled block that lacks the additional constraint. The device may execute the third compiled block to execute a program associated with the programming code.

    Abstract translation: 设备可以识别具有原始约束和附加约束的第一编译块。 可以基于程序计数器值来识别第一编译块,并且可以包括与程序代码的第一段相关联的编译信息,与第二编译块相关联的链接信息以及区分原始约束与附加约束的信息。 原始约束可以涉及在编程代码的第一段中使用的变量的类型。 附加约束可以涉及在与第二编译块相关联的第二编程代码段中使用的变量。 设备可以复制第一编译块的信息以生成缺少附加约束的第三编译块。 设备可以执行第三编译块来执行与编程代码相关联的程序。

    Code generation and execution for dynamic programming languages
    5.
    发明授权
    Code generation and execution for dynamic programming languages 有权
    动态编程语言的代码生成和执行

    公开(公告)号:US08943474B1

    公开(公告)日:2015-01-27

    申请号:US13658996

    申请日:2012-10-24

    CPC classification number: G06F9/4552

    Abstract: A device receives programming code, corresponding to a dynamic programming language, that is to be executed by a computing environment, and executes the programming code. When executing the programming code, the device maintains a program counter that identifies an execution location within the programming code, and select blocks of the programming code based on the program counter. The blocks correspond to segments of the programming code, and are associated with type-based constraints that relate to types of variables that are used by the block. When executing the programming code, the device also compiles the selected blocks, caches the compiled blocks along with the type-based constraints, generates linking information between certain ones of the compiled blocks based on the type-based constraints, and executes the compiled blocks in an order based on the program counter, the type-based constraints, and the linking information.

    Abstract translation: 设备接收与计算环境执行的动态编程语言对应的编程代码,并执行编程代码。 当执行编程代码时,设备维护编程代码中的执行位置的程序计数器,并根据程序计数器选择编程代码块。 这些块对应于编程代码的段,并且与与块使用的变量的类型相关联的基于类型的约束相关联。 当执行编程代码时,设备还编译所选择的块,将编译块与基于类型的约束一起缓存,基于基于类型的约束在某些编译块之间生成链接信息,并且执行编译块 基于程序计数器的顺序,基于类型的约束和链接信息。

Patent Agency Ranking