Patents by Inventor Daniel J. Heidinga

Daniel J. Heidinga 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: 10846147
    Abstract: Techniques are disclosed for providing class-specific parameters for spinlocks in an application executing in a runtime environment. During execution of the application, a blocking portion of code is entered for an object in the application. The runtime environment determines that one or more spinlock parameters is enabled for the object of a class. The runtime environment applies the determined spinlock parameters to the object. A spinlock algorithm is performed using the applied spinlock parameters.
    Type: Grant
    Filed: November 1, 2016
    Date of Patent: November 24, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel J. Heidinga, Angela Lin, Babneet Singh
  • Patent number: 10649797
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Grant
    Filed: January 2, 2019
    Date of Patent: May 12, 2020
    Assignee: International Business Machines Corporation
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20190138332
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Application
    Filed: January 2, 2019
    Publication date: May 9, 2019
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Patent number: 10235165
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: November 9, 2016
    Date of Patent: March 19, 2019
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 10228957
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Grant
    Filed: January 20, 2017
    Date of Patent: March 12, 2019
    Assignee: International Business Machines Corporation
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20180210743
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Application
    Filed: January 20, 2017
    Publication date: July 26, 2018
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20180203853
    Abstract: A method, computer program product, and system includes a processor(s) generating an interface to enable communication of data elements from a first computing resource to a second computing resource. An element of the data is a data structure of variable size. To generate the interface, the processor(s) requests a layout that includes a variable array. The processor(s) locates a layout referenced by the variable array; the layout for the variable array can accommodate the data structure of variable size. The processor(s) generates the layout, which includes generating a runtime class for an element type of the data structure of variable size and generating a runtime class for the variable array. The processor generates an enclosing layout that indicates to the second computing resource, delineations between the data elements. The processor(s) communicates, via the interface, the data elements from the first computing resource to the second computing resource.
    Type: Application
    Filed: January 13, 2017
    Publication date: July 19, 2018
    Inventors: Oluwatobi A. AJILA, Daniel J. HEIDINGA
  • Patent number: 10001979
    Abstract: Embodiments of the present invention provide methods, computer program products, and systems for optimizing virtual calls. Embodiments of the present invention can be used to receive a virtual call associated with a first implementation method and identify a virtual call associated with a second implementation method that appears to have similar functionality to the first implementation method. Embodiments of the present invention can determine whether the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result and, responsive to determining that the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result, use a result of the virtual call associated with the first implementation method as a result of the virtual call associated with the second implementation method.
    Type: Grant
    Filed: November 25, 2015
    Date of Patent: June 19, 2018
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
  • Publication number: 20180121255
    Abstract: Techniques are disclosed for providing class-specific parameters for spinlocks in an application executing in a runtime environment. During execution of the application, a blocking portion of code is entered for an object in the application. The runtime environment determines that one or more spinlock parameters is enabled for the object of a class. The runtime environment applies the determined spinlock parameters to the object. A spinlock algorithm is performed using the applied spinlock parameters.
    Type: Application
    Filed: November 1, 2016
    Publication date: May 3, 2018
    Inventors: Daniel J. HEIDINGA, Angela LIN, Babneet SINGH
  • Publication number: 20170147304
    Abstract: Embodiments of the present invention provide methods, computer program products, and systems for optimizing virtual calls. Embodiments of the present invention can be used to receive a virtual call associated with a first implementation method and identify a virtual call associated with a second implementation method that appears to have similar functionality to the first implementation method. Embodiments of the present invention can determine whether the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result and, responsive to determining that the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result, use a result of the virtual call associated with the first implementation method as a result of the virtual call associated with the second implementation method.
    Type: Application
    Filed: November 25, 2015
    Publication date: May 25, 2017
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
  • Publication number: 20170139689
    Abstract: A method for caching a MethodType object. The method may include identifying, by a processor, a plurality of classes associated with a method descriptor string. The method may also include determining the identified plurality of classes are loaded into a language runtime environment associated with an object oriented programming language. The method may further include creating the MethodType object using the identified plurality of classes. The method may also include storing the created MethodType object in a cache. The method may further include transmitting the stored MethodType object to the language runtime environment.
    Type: Application
    Filed: November 12, 2015
    Publication date: May 18, 2017
    Inventors: Daniel J. Heidinga, Bjøm Vàrdal
  • Patent number: 9632755
    Abstract: A computer-implemented method includes receiving an invocation of an invoked interface associated with a class, identifying, based on the class, a plurality of interface lookup artifacts and a cached interface lookup artifact, and comparing the invoked interface with a cache interface. The cache interface is associated with the cached interface artifact. The computer-implemented method further includes, responsive to the invoked interface matching the cache interface, returning the cached interface artifact, and responsive to the invoked interface not matching the cache interface, searching the plurality of interface lookup artifacts until finding a matching interface lookup artifact. The matching interface lookup artifact is associated with a matching interface that matches the invoked interface. Responsive to finding the matching interface lookup artifact, returning the matching interface lookup artifact and updating the cached interface lookup artifact to the matching interface lookup artifact.
    Type: Grant
    Filed: October 6, 2015
    Date of Patent: April 25, 2017
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Publication number: 20170097811
    Abstract: A computer-implemented method includes receiving an invocation of an invoked interface associated with a class, identifying, based on the class, a plurality of interface lookup artefacts and a cached interface lookup artefact, and comparing the invoked interface with a cache interface. The cache interface is associated with the cached interface artefact. The computer-implemented method further includes, responsive to the invoked interface matching the cache interface, returning the cached interface artefact, and responsive to the invoked interface not matching the cache interface, searching the plurality of interface lookup artefacts until finding a matching interface lookup artefact. The matching interface lookup artefact is associated with a matching interface that matches the invoked interface. Responsive to finding the matching interface lookup artefact, returning the matching interface lookup artefact and updating the cached interface lookup artefact to the matching interface lookup artefact.
    Type: Application
    Filed: October 6, 2015
    Publication date: April 6, 2017
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Publication number: 20170090920
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Application
    Filed: November 9, 2016
    Publication date: March 30, 2017
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 9588778
    Abstract: Embodiments of the present invention disclose a method, system, and computer program product for a JNI object access system. A computer receives a JNI reference and obtains the pointer data and call site of the referenced object. The computer determines whether a record of the object and call site exist and, if not, the respective records are created. The computer applies a heuristic analysis of the object and call site in which it determines whether the object is larger than a threshold size, whether the object is part of a particular region of the heap, whether the call site is associated with a read-only or a read-write function, and whether the object or call site has caused more non-moving garbage collections than a threshold number. Based on the heuristic, the computer either copies the object data or pins the object and any non-moving garbage collections are recorded.
    Type: Grant
    Filed: June 29, 2015
    Date of Patent: March 7, 2017
    Assignee: International Business Machines Corporation
    Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor
  • Patent number: 9569206
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: September 29, 2015
    Date of Patent: February 14, 2017
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Publication number: 20160378508
    Abstract: Embodiments of the present invention disclose a method, system, and computer program product for a JNI object access system. A computer receives a JNI reference and obtains the pointer data and call site of the referenced object. The computer determines whether a record of the object and call site exist and, if not, the respective records are created. The computer applies a heuristic analysis of the object and call site in which it determines whether the object is larger than a threshold size, whether the object is part of a particular region of the heap, whether the call site is associated with a read-only or a read-write function, and whether the object or call site has caused more non-moving garbage collections than a threshold number. Based on the heuristic, the computer either copies the object data or pins the object and any non-moving garbage collections are recorded.
    Type: Application
    Filed: June 29, 2015
    Publication date: December 29, 2016
    Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor
  • Patent number: 9418004
    Abstract: Embodiments of the present invention disclose a method, system, and computer program product for a JNI object access system. A computer receives a JNI reference and obtains the pointer data and call site of the referenced object. The computer determines whether a record of the object and call site exist and, if not, the respective records are created. The computer applies a heuristic analysis of the object and call site in which it determines whether the object is larger than a threshold size, whether the object is part of a particular region of the heap, whether the call site is associated with a read-only or a read-write function, and whether the object or call site has caused more non-moving garbage collections than a threshold number. Based on the heuristic, the computer either copies the object data or pins the object and any non-moving garbage collections are recorded.
    Type: Grant
    Filed: October 29, 2015
    Date of Patent: August 16, 2016
    Assignee: International Business Machines Corporation
    Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor
  • Patent number: 9417856
    Abstract: A method for obtaining accurate call path information in a mixed-mode environment where interpreted methods and non-interpreted methods can call one another is disclosed. In one embodiment, such a method includes generating an event and recording it in a buffer when an interpreted method calls an interpreted method. The method also generates an event and records it in the buffer when an interpreted method calls a non-interpreted method. The method further generates an event and records it in the buffer when a non-interpreted method calls an interpreted method. The method refrains from generating an event when a non-interpreted method calls a non-interpreted method. A corresponding apparatus and computer program product are also disclosed.
    Type: Grant
    Filed: March 15, 2012
    Date of Patent: August 16, 2016
    Assignee: International Business Machines Corporation
    Inventors: Graham A. Chapman, James I. Gartley, Daniel J. Heidinga, Vijay Sundaresan
  • Patent number: 9092237
    Abstract: An illustrative embodiment for serialization of pre-initialized objects receives a source code definition of a class, identifies a set of constants associated with the class in the source code to form a set of identified constants, creates a result object corresponding to each constant in the set of identified constants, and compiles the source code into a compiled form of the class. The illustrative embodiment further serializes each result object into a resource file associated with the class to form a set of serialized objects and replaces, in the compiled form of the class, each reference to a respective constant associated with the class from the set of identified constants with a corresponding dynamic instruction using a respective serialized object in the set of serialized objects.
    Type: Grant
    Filed: August 20, 2012
    Date of Patent: July 28, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Peter W. Burka, Daniel J. Heidinga, Karl M. Taylor, Olivier P. Thomann