-
公开(公告)号:US20230071160A1
公开(公告)日:2023-03-09
申请号:US17466904
申请日:2021-09-03
Applicant: Oracle International Corporation
Inventor: David Leopoldseder , Christian Wimmer , Florian Latifi
IPC: G06F8/41
Abstract: A method for compiling source code may include obtaining an abstract syntax tree (AST) node of an AST generated from the source code. The AST node may include a first value and a second value. The method may further include obtaining, for the AST node, an intermediate representation (IR) graph, determining that the first value is a constant, propagating the first value to the IR graph to obtain a first partially evaluated IR graph, and generating, for the AST node, a compiler. The first partially evaluated IR graph corresponds to a result of executing the compiler. The method may further include determining, by the compiler, that the second value is a constant, propagating, by the compiler, the second value to the first partially evaluated IR graph to obtain a second partially evaluated first IR graph, and executing the AST node using the second partially evaluated IR graph.
-
公开(公告)号:US20200117509A1
公开(公告)日:2020-04-16
申请号:US16156711
申请日:2018-10-10
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Peter Hofer , Vojin Jovanovic , Oleg A. Pliss
Abstract: A method may include generating, for a host application, an image including an image heap including objects and a writeable object partition including a subset of the objects. The method may further include initializing, by executing the image in a process of a computer system, a first isolate including a first address space and a first read-only map of the image heap. The first read-only map may designate the writeable object partition of the image heap as copy-on-write. The method may further include initializing, by executing the image in the process, a second isolate including a second address space and a second read-only map of the image heap. The method may further include performing, in the first isolate and using the first read-only map, a first task that accesses an object, and performing, in the second isolate and using the second read-only map, a second task that accesses the object.
-
公开(公告)号:US10776161B2
公开(公告)日:2020-09-15
申请号:US16206710
申请日:2018-11-30
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Peter Hofer
Abstract: A method may include obtaining, for a thread executing application code, a recurring task, a recurring interval, a previous callback time, a starting counter value, and a counter trigger, initializing a current counter value to the starting counter value, and performing checks in response to adjustments to the current counter value. Each check may determine whether the respective adjusted current counter value satisfies the counter trigger. The method may further include in response to a check determining that the adjusted current counter value satisfies the counter trigger, invoking a callback handler with a callback that performs the recurring task, and in response to an elapsed time exceeding the recurring interval, executing, by the callback handler, the callback. The elapsed time may be an amount of time elapsed between the previous callback time and the first invocation. The method may further include modifying the starting counter value using the elapsed time.
-
公开(公告)号:US08930920B2
公开(公告)日:2015-01-06
申请号:US13731698
申请日:2012-12-31
Applicant: Oracle International Corporation
Inventor: Thomas Wuerthinger , Douglas Norman Simon , Christian Wimmer , Lukas Stadler , Gilles Marie Duboscq
CPC classification number: G06F9/45508 , G06F8/41 , G06F8/433 , G06F8/443 , G06F9/4552
Abstract: A method for a compiler includes receiving, by the compiler and from an interpreter, a representation of a code section having a control path that changes the representation. The representation has profiling data, and the profiling data has a threshold. The method further includes performing, by the compiler and based on the threshold, a partial evaluation of the interpreter executing the representation, compiling, by the compiler, a machine code of the representation, with the control path replaced by a deoptimization point during the compilation of the machine code, triggering the deoptimization point during execution of the machine code, and returning execution to the interpreter based on the triggering.
Abstract translation: 一种用于编译器的方法包括由编译器和解释器接收具有改变表示的控制路径的代码段的表示。 该表示具有分析数据,并且分析数据具有阈值。 该方法进一步包括由编译器和基于阈值执行执行该表示的解释器的部分评估,由编译器编译表示的机器代码,在编译期间将控制路径替换为去优化点 的机器代码,在执行机器代码期间触发去优化点,并且基于触发将执行返回到解释器。
-
公开(公告)号:US12242832B1
公开(公告)日:2025-03-04
申请号:US18452842
申请日:2023-08-21
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Liviu Codrut Stancu
IPC: G06F8/41
Abstract: A flow graph of a first compilation unit of the program is expanded. The first corresponding parameter states of statements of the first compilation unit are marked as empty. The statements of the first compilation unit are processed to update the first corresponding parameter states with an exact type and a value set. Processing the statements include tracking a control flow predicate of a block in the first compilation unit, wherein the block comprises a first subset of the statements. Only after the control flow predicate indicates that the block is executable, the method includes processing an invocation statement in the first subset of the first statements, and expanding, responsive to the invocation statement, the flow graph for a second compilation unit of the program that is identified by the invocation statement.
-
公开(公告)号:US20250068404A1
公开(公告)日:2025-02-27
申请号:US18452842
申请日:2023-08-21
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Liviu Codrut Stancu
IPC: G06F8/41
Abstract: A flow graph of a first compilation unit of the program is expanded. The first corresponding parameter states of statements of the first compilation unit are marked as empty. The statements of the first compilation unit are processed to update the first corresponding parameter states with an exact type and a value set. Processing the statements include tracking a control flow predicate of a block in the first compilation unit, wherein the block comprises a first subset of the statements. Only after the control flow predicate indicates that the block is executable, the method includes processing an invocation statement in the first subset of the first statements, and expanding, responsive to the invocation statement, the flow graph for a second compilation unit of the program that is identified by the invocation statement.
-
公开(公告)号:US10719362B2
公开(公告)日:2020-07-21
申请号:US16156711
申请日:2018-10-10
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Peter Hofer , Vojin Jovanovic , Oleg A. Pliss
Abstract: A method may include generating, for a host application, an image including an image heap including objects and a writeable object partition including a subset of the objects. The method may further include initializing, by executing the image in a process of a computer system, a first isolate including a first address space and a first read-only map of the image heap. The first read-only map may designate the writeable object partition of the image heap as copy-on-write. The method may further include initializing, by executing the image in the process, a second isolate including a second address space and a second read-only map of the image heap. The method may further include performing, in the first isolate and using the first read-only map, a first task that accesses an object, and performing, in the second isolate and using the second read-only map, a second task that accesses the object.
-
公开(公告)号:US20200174826A1
公开(公告)日:2020-06-04
申请号:US16206710
申请日:2018-11-30
Applicant: Oracle International Corporation
Inventor: Christian Wimmer , Peter Hofer
Abstract: A method may include obtaining, for a thread executing application code, a recurring task, a recurring interval, a previous callback time, a starting counter value, and a counter trigger, initializing a current counter value to the starting counter value, and performing checks in response to adjustments to the current counter value. Each check may determine whether the respective adjusted current counter value satisfies the counter trigger. The method may further include in response to a check determining that the adjusted current counter value satisfies the counter trigger, invoking a callback handler with a callback that performs the recurring task, and in response to an elapsed time exceeding the recurring interval, executing, by the callback handler, the callback. The elapsed time may be an amount of time elapsed between the previous callback time and the first invocation. The method may further include modifying the starting counter value using the elapsed time.
-
公开(公告)号:US20140189661A1
公开(公告)日:2014-07-03
申请号:US13731698
申请日:2012-12-31
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Thomas Wuerthinger , Douglas Norman Simon , Christian Wimmer , Lukas Stadler , Gilles Marie Duboscq
IPC: G06F9/45
CPC classification number: G06F9/45508 , G06F8/41 , G06F8/433 , G06F8/443 , G06F9/4552
Abstract: A method for a compiler includes receiving, by the compiler and from an interpreter, a representation of a code section having a control path that changes the representation. The representation has profiling data, and the profiling data has a threshold. The method further includes performing, by the compiler and based on the threshold, a partial evaluation of the interpreter executing the representation, compiling, by the compiler, a machine code of the representation, with the control path replaced by a deoptimization point during the compilation of the machine code, triggering the deoptimization point during execution of the machine code, and returning execution to the interpreter based on the triggering.
Abstract translation: 一种用于编译器的方法包括由编译器和解释器接收具有改变表示的控制路径的代码段的表示。 该表示具有分析数据,并且分析数据具有阈值。 该方法进一步包括由编译器和基于阈值执行执行该表示的解释器的部分评估,由编译器编译表示的机器代码,在编译期间将控制路径替换为去优化点 的机器代码,在执行机器代码期间触发去优化点,并且基于触发将执行返回到解释器。
-
-
-
-
-
-
-
-