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: 11947531
    Abstract: 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: Grant
    Filed: February 14, 2023
    Date of Patent: April 2, 2024
    Assignee: Oracle International Corporation
    Inventors: Altin Alickaj, Alexander Ulrich, Lukas Stadler
  • Patent number: 11392356
    Abstract: 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: Grant
    Filed: February 26, 2021
    Date of Patent: July 19, 2022
    Assignee: Oracle International Corporation
    Inventors: David Leopoldseder, Raphael Mosaner, Lukas Stadler
  • Patent number: 11288108
    Abstract: 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: Grant
    Filed: December 3, 2019
    Date of Patent: March 29, 2022
    Assignee: Oracle International Corporation
    Inventors: Alberto Parravicini, Davide Bartolini, Lukas Stadler, Arnaud Delamare
  • Publication number: 20210165699
    Abstract: 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: Application
    Filed: December 3, 2019
    Publication date: June 3, 2021
    Inventors: ALBERTO PARRAVICINI, DAVIDE BARTOLINI, LUKAS STADLER, ARNAUD DELAMARE
  • Patent number: 10732946
    Abstract: 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: Grant
    Filed: May 16, 2019
    Date of Patent: August 4, 2020
    Assignee: Oracle International Corporation
    Inventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
  • Publication number: 20190272160
    Abstract: 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: Application
    Filed: May 16, 2019
    Publication date: September 5, 2019
    Applicant: Oracle International Corporation
    Inventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
  • Patent number: 10338903
    Abstract: 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: Grant
    Filed: March 21, 2018
    Date of Patent: July 2, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
  • Publication number: 20190012154
    Abstract: 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: Application
    Filed: March 21, 2018
    Publication date: January 10, 2019
    Inventors: David Leopoldseder, Thomas Wuerthinger, Lukas Stadler
  • Patent number: 9836288
    Abstract: 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: Grant
    Filed: April 20, 2015
    Date of Patent: December 5, 2017
    Assignee: Oracle International Corporation
    Inventors: Lukas Stadler, Thomas Wuerthinger, Gero Leinemann, Michael Haupt
  • Publication number: 20160117157
    Abstract: 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: Application
    Filed: April 20, 2015
    Publication date: April 28, 2016
    Inventors: Lukas Stadler, Thomas Wuerthinger, Gero Leinemann, Michael Haupt
  • Patent number: 9235433
    Abstract: 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: Grant
    Filed: October 23, 2013
    Date of Patent: January 12, 2016
    Assignee: Oracle International Corporation
    Inventors: Thomas Wuerthinger, Lukas Stadler
  • Publication number: 20150113512
    Abstract: 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: Application
    Filed: October 23, 2013
    Publication date: April 23, 2015
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Thomas Wuerthinger, Lukas Stadler
  • Patent number: 8930920
    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.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: January 6, 2015
    Assignee: Oracle International Corporation
    Inventors: Thomas Wuerthinger, Douglas Norman Simon, Christian Wimmer, Lukas Stadler, Gilles Marie Duboscq
  • Publication number: 20140189661
    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.
    Type: Application
    Filed: December 31, 2012
    Publication date: July 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Thomas Wuerthinger, Douglas Norman Simon, Christian Wimmer, Lukas Stadler, Gilles Marie Duboscq