Patents by Inventor Lukas Stadler
Lukas Stadler has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11947531Abstract: In a computer embodiment, in a polyglot database management system (DBMS) that contains a guest language runtime environment, a database buffer is configured that the guest language runtime environment does not manage. In the polyglot DBMS, logic that is defined in a guest language is invoked to retrieve, into the database buffer, a value stored in a database in the polyglot DBMS. Compiling the logic causes semantic analyzing the logic to detect that usage of the retrieved value cannot occur after the retrieved value is overwritten in the database buffer. When detecting that such usage of the retrieved value cannot occur, the logic is executed without, after the retrieved value is overwritten in the database buffer, retaining a copy of the retrieved value in a memory region that the guest language runtime environment manages.Type: GrantFiled: February 14, 2023Date of Patent: April 2, 2024Assignee: Oracle International CorporationInventors: Altin Alickaj, Alexander Ulrich, Lukas Stadler
-
Patent number: 11392356Abstract: A method may include extracting, from an initial compilation graph and for an optimization parameter, a feature. The initial compilation graph may be generated from a function in source code. The method may further include applying, to the initial compilation graph, values of the optimization parameter to generate versions of the initial compilation graph. The versions of the initial compilation graph may correspond to the values of the optimization parameter. The method may further include executing the versions of the initial compilation graph to obtain values of a performance metric, and selecting, as an optimized compilation graph and using the values of the performance metric, a version of the initial compilation graph.Type: GrantFiled: February 26, 2021Date of Patent: July 19, 2022Assignee: Oracle International CorporationInventors: David Leopoldseder, Raphael Mosaner, Lukas Stadler
-
Patent number: 11288108Abstract: Techniques are provided for an automated method of adding out-of-bound access prevention in GPU kernels executed in a managed environment. In an embodiment, a system of computers compiles a GPU kernel code function that includes one or more array references that are memory address dependent. The system of computers compiles the kernel code function by generating a rewritten GPU kernel code module that includes, within the function signature of the rewritten GPU kernel code module, a respective array size parameter for each array reference of the one or more array references included in the GPU kernel code function. The system of computers further compiles the kernel code function by adding bounding protection instructions to the one or more potential out-of-bound access instructions in the rewritten GPU kernel code module. The potential out-of-bound access instructions comprise instructions that reference each respective array size parameter of the one or more array references.Type: GrantFiled: December 3, 2019Date of Patent: March 29, 2022Assignee: Oracle International CorporationInventors: Alberto Parravicini, Davide Bartolini, Lukas Stadler, Arnaud Delamare
-
Publication number: 20210165699Abstract: Techniques are provided for an automated method of adding out-of-bound access prevention in GPU kernels executed in a managed environment. In an embodiment, a system of computers compiles a GPU kernel code function that includes one or more array references that are memory address dependent. The system of computers compiles the kernel code function by generating a rewritten GPU kernel code module that includes, within the function signature of the rewritten GPU kernel code module, a respective array size parameter for each array reference of the one or more array references included in the GPU kernel code function. The system of computers further compiles the kernel code function by adding bounding protection instructions to the one or more potential out-of-bound access instructions in the rewritten GPU kernel code module. The potential out-of-bound access instructions comprise instructions that reference each respective array size parameter of the one or more array references.Type: ApplicationFiled: December 3, 2019Publication date: June 3, 2021Inventors: ALBERTO PARRAVICINI, DAVIDE BARTOLINI, LUKAS STADLER, ARNAUD DELAMARE
-
Patent number: 10732946Abstract: A method for analyzing a program may include generating an initial control flow graph (CFG) for the program, identifying merge blocks of the initial CFG, identifying predecessor-merge pairs based on identifying predecessor blocks for each merge block, simulating a duplication of each predecessor-merge pair, determining whether the duplication satisfies a precondition of each of a collection of optimizations, applying, in response to satisfying the precondition, the optimization to the duplication, and generating a simulation result for the predecessor-merge pair corresponding to the duplication. The simulation result may include the optimization and a benefit of applying the optimization to the duplication. The method may further include duplicating, in the initial CFG, a predecessor-merge pair based on the simulation result corresponding to the predecessor-merge pair.Type: GrantFiled: May 16, 2019Date of Patent: August 4, 2020Assignee: Oracle International CorporationInventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
-
Publication number: 20190272160Abstract: A method for analyzing a program may include generating an initial control flow graph (CFG) for the program, identifying merge blocks of the initial CFG, identifying predecessor-merge pairs based on identifying predecessor blocks for each merge block, simulating a duplication of each predecessor-merge pair, determining whether the duplication satisfies a precondition of each of a collection of optimizations, applying, in response to satisfying the precondition, the optimization to the duplication, and generating a simulation result for the predecessor-merge pair corresponding to the duplication. The simulation result may include the optimization and a benefit of applying the optimization to the duplication. The method may further include duplicating, in the initial CFG, a predecessor-merge pair based on the simulation result corresponding to the predecessor-merge pair.Type: ApplicationFiled: May 16, 2019Publication date: September 5, 2019Applicant: Oracle International CorporationInventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
-
Patent number: 10338903Abstract: A method for analyzing a program may include generating an initial control flow graph (CFG) for the program, identifying merge blocks of the initial CFG, identifying predecessor-merge pairs based on identifying predecessor blocks for each merge block, simulating a duplication of each predecessor-merge pair, determining whether the duplication satisfies a precondition of each of a collection of optimizations, applying, in response to satisfying the precondition, the optimization to the duplication, and generating a simulation result for the predecessor-merge pair corresponding to the duplication. The simulation result may include the optimization and a benefit of applying the optimization to the duplication. The method may further include duplicating, in the initial CFG, a predecessor-merge pair based on the simulation result corresponding to the predecessor-merge pair.Type: GrantFiled: March 21, 2018Date of Patent: July 2, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
-
Publication number: 20190012154Abstract: A method for analyzing a program may include generating an initial control flow graph (CFG) for the program, identifying merge blocks of the initial CFG, identifying predecessor-merge pairs based on identifying predecessor blocks for each merge block, simulating a duplication of each predecessor-merge pair, determining whether the duplication satisfies a precondition of each of a collection of optimizations, applying, in response to satisfying the precondition, the optimization to the duplication, and generating a simulation result for the predecessor-merge pair corresponding to the duplication. The simulation result may include the optimization and a benefit of applying the optimization to the duplication. The method may further include duplicating, in the initial CFG, a predecessor-merge pair based on the simulation result corresponding to the predecessor-merge pair.Type: ApplicationFiled: March 21, 2018Publication date: January 10, 2019Inventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
-
Patent number: 9836288Abstract: The invention relates to a method for generating executable code from application source code. The method steps include determining a programmatic expression using the application source code and determining a first value for the programmatic expression. The method steps further include compiling the programmatic expression into a first optimized code portion using the first value, an assumption, and an expression scope. The method steps further include executing the application source code. The method steps further include determining that the programmatic expression is modified outside of the expression scope, invalidating the assumption, and de-optimizing the first optimized code portion.Type: GrantFiled: April 20, 2015Date of Patent: December 5, 2017Assignee: Oracle International CorporationInventors: Lukas Stadler, Thomas Wuerthinger, Gero Leinemann, Michael Haupt
-
Publication number: 20160117157Abstract: The invention relates to a method for generating executable code from application source code. The method steps include determining a programmatic expression using the application source code and determining a first value for the programmatic expression. The method steps further include compiling the programmatic expression into a first optimized code portion using the first value, an assumption, and an expression scope. The method steps further include executing the application source code. The method steps further include determining that the programmatic expression is modified outside of the expression scope, invalidating the assumption, and de-optimizing the first optimized code portion.Type: ApplicationFiled: April 20, 2015Publication date: April 28, 2016Inventors: Lukas Stadler, Thomas Wuerthinger, Gero Leinemann, Michael Haupt
-
Patent number: 9235433Abstract: A method for optimizing code includes receiving, by a compiler and from an interpreter, a code section representation including an object allocation, compiling, by the compiler, the code section representation into machine code with a compact allocated object of the object allocation, and triggering a deoptimization returning execution to the interpreter in response to an attempted access of the compact allocated object. The method further includes setting, by the interpreter and within the code section representation, a flag indicating that a new compact allocated object is required at a location of the attempted access, receiving, by the compiler, the code section representation including the flag, compiling, by the compiler and according to the flag, the code section representation into new machine code including the new compact allocated object, and executing the new machine code with the new compact allocated object.Type: GrantFiled: October 23, 2013Date of Patent: January 12, 2016Assignee: Oracle International CorporationInventors: Thomas Wuerthinger, Lukas Stadler
-
Publication number: 20150113512Abstract: A method for optimizing code includes receiving, by a compiler and from an interpreter, a code section representation including an object allocation, compiling, by the compiler, the code section representation into machine code with a compact allocated object of the object allocation, and triggering a deoptimization returning execution to the interpreter in response to an attempted access of the compact allocated object. The method further includes setting, by the interpreter and within the code section representation, a flag indicating that a new compact allocated object is required at a location of the attempted access, receiving, by the compiler, the code section representation including the flag, compiling, by the compiler and according to the flag, the code section representation into new machine code including the new compact allocated object, and executing the new machine code with the new compact allocated object.Type: ApplicationFiled: October 23, 2013Publication date: April 23, 2015Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Thomas Wuerthinger, Lukas Stadler
-
Patent number: 8930920Abstract: 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.Type: GrantFiled: December 31, 2012Date of Patent: January 6, 2015Assignee: Oracle International CorporationInventors: Thomas Wuerthinger, Douglas Norman Simon, Christian Wimmer, Lukas Stadler, Gilles Marie Duboscq
-
Publication number: 20140189661Abstract: 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.Type: ApplicationFiled: December 31, 2012Publication date: July 3, 2014Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Thomas Wuerthinger, Douglas Norman Simon, Christian Wimmer, Lukas Stadler, Gilles Marie Duboscq