UNIFYING STATIC AND DYNAMIC COMPILER OPTIMIZATIONS IN SOURCE-CODE BASES
    1.
    发明申请
    UNIFYING STATIC AND DYNAMIC COMPILER OPTIMIZATIONS IN SOURCE-CODE BASES 有权
    源代码基础中的统一静态和动态编译器优化

    公开(公告)号:US20150128115A1

    公开(公告)日:2015-05-07

    申请号:US14594954

    申请日:2015-01-12

    Abstract: Techniques are described for unifying static and dynamic compiler optimizations in source code bases. In an embodiment, a first compiler compiles source code of a target function to generate ahead-of-time (AOT) compiled machine code. A second compiler compiles the source code to generate an intermediate representation (IR) of the target function. In response to determining that the target function should be just-in-time (JIT) compiled, the AOT-compiled machine code for the target function is linked to the IR of the target function. During runtime, a physical processor executes AOT-compiled machine code of an executable program. When the target function is encountered for the first time, a JIT compiler is invoked. The JIT compiler generates JIT-compiled machine code for the target function. The physical processor executes the JIT-compiled machine code in place of the AOT-compiled machine code for the target function.

    Abstract translation: 描述了在源代码库中统一静态和动态编译器优化的技术。 在一个实施例中,第一编译器编译目标函数的源代码以生成预先(AOT)编译的机器码。 第二个编译器编译源代码以生成目标函数的中间表示(IR)。 响应于确定目标函数应该是即时编译(JIT),目标函数的AOT编译机器代码链接到目标函数的IR。 在运行时,物理处理器执行AOT编译的可执行程序的机器代码。 当第一次遇到目标函数时,将调用JIT编译器。 JIT编译器为目标函数生成JIT编译的机器代码。 物理处理器执行JIT编译的机器代码,代替目标函数的AOT编译机器代码。

    Unifying static and dynamic compiler optimizations in source-code bases

    公开(公告)号:US09417857B2

    公开(公告)日:2016-08-16

    申请号:US14594954

    申请日:2015-01-12

    Abstract: Techniques are described for unifying static and dynamic compiler optimizations in source code bases. In an embodiment, a first compiler compiles source code of a target function to generate ahead-of-time (AOT) compiled machine code. A second compiler compiles the source code to generate an intermediate representation (IR) of the target function. In response to determining that the target function should be just-in-time (JIT) compiled, the AOT-compiled machine code for the target function is linked to the IR of the target function. During runtime, a physical processor executes AOT-compiled machine code of an executable program. When the target function is encountered for the first time, a JIT compiler is invoked. The JIT compiler generates JIT-compiled machine code for the target function. The physical processor executes the JIT-compiled machine code in place of the AOT-compiled machine code for the target function.

    Enabling symbol resolution of private symbols in legacy programs and optimizing access to the private symbols
    3.
    发明授权
    Enabling symbol resolution of private symbols in legacy programs and optimizing access to the private symbols 有权
    启用遗留程序中私有符号的符号解析,并优化对私有符号的访问

    公开(公告)号:US08881123B2

    公开(公告)日:2014-11-04

    申请号:US13690513

    申请日:2012-11-30

    CPC classification number: G06F8/4441

    Abstract: A method for generating a binary executable of a program so that private symbols in a module are accessible from another module. In one embodiment, the method compiles a source program to an intermediate representation and scans the representation to find the private symbols in the program's modules. It then wraps a function around each private symbol. When called, the function returns an address of the private symbol, so that the other module can access the symbol from outside the module in which the symbol is found. At run time, a call is made to obtain the address of the function, which is then executed to obtain the address of the private symbol so that the symbol can be accessed. In another embodiment, a Just-In-Time compiler executes the wrapper functions and patches the executable program with the direct address of the private symbol to avoid a call to the wrapper function.

    Abstract translation: 一种用于生成程序的二进制可执行程序的方法,使得模块中的私有符号可从另一个模块访问。 在一个实施例中,该方法将源程序编译为中间表示,并扫描该表示以在程序模块中找到专用符号。 然后它围绕每个私有符号包装一个函数。 当被调用时,该函数返回私有符号的地址,以便另一个模块可以从找到符号的模块外部访问该符号。 在运行时,进行呼叫以获取功能的地址,然后执行该地址以获得私有符号的地址,以便可以访问该符号。 在另一个实施例中,即时编译器执行包装器功能并使用私有符号的直接​​地址对可执行程序进行修补以避免对包装函数的调用。

    Enabling Symbol Resolution of Private Symbols in Legacy Programs and Optimizing Access to the Private Symbols
    4.
    发明申请
    Enabling Symbol Resolution of Private Symbols in Legacy Programs and Optimizing Access to the Private Symbols 有权
    在传统程序中启用符号解析私人符号,并优化对私有符号的访问

    公开(公告)号:US20140157247A1

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

    申请号:US13690513

    申请日:2012-11-30

    CPC classification number: G06F8/4441

    Abstract: A method for generating a binary executable of a program so that private symbols in a module are accessible from another module. In one embodiment, the method compiles a source program to an intermediate representation and scans the representation to find the private symbols in the program's modules. It then wraps a function around each private symbol. When called, the function returns an address of the private symbol, so that the other module can access the symbol from outside the module in which the symbol is found. At run time, a call is made to obtain the address of the function, which is then executed to obtain the address of the private symbol so that the symbol can be accessed. In another embodiment, a Just-In-Time compiler executes the wrapper functions and patches the executable program with the direct address of the private symbol to avoid a call to the wrapper function.

    Abstract translation: 一种用于生成程序的二进制可执行程序的方法,使得模块中的私有符号可从另一个模块访问。 在一个实施例中,该方法将源程序编译为中间表示,并扫描该表示以在程序模块中找到专用符号。 然后它围绕每个私有符号包装一个函数。 当被调用时,该函数返回私有符号的地址,以便另一个模块可以从找到符号的模块外部访问该符号。 在运行时,进行呼叫以获取功能的地址,然后执行该地址以获得私有符号的地址,以便可以访问该符号。 在另一个实施例中,即时编译器执行包装器功能并使用私有符号的直接​​地址对可执行程序进行修补以避免对包装函数的调用。

Patent Agency Ranking