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).
-
Publication number: 20260037277Abstract: A system encounters an instruction that triggers generating an array that includes a set of elements initialized with a set of initial values. In response to encountering the instruction, the system identifies an application programming interface (API) for generating the array and executes a call to the API to request the API to generate the array. The API receives the call and, in response to the call, executes an array generation process to generate the array. The API provides the array to the system, and the system receives the array from the API. The array includes the set of elements initialized with the set of initial values.Type: ApplicationFiled: May 5, 2025Publication date: February 5, 2026Applicant: Oracle International CorporationInventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
-
Publication number: 20260037276Abstract: A system encounters a static field-access instruction to access a static field of a class. In response to encountering the static field-access instruction, the system determines that the first static field has yet to be accessed, and responsive to determining that the first static field has yet to be accessed, the system determines that an initial value has been assigned to the static field. In response to determining that the initial value has been assigned to the static field, the system accesses the static field.Type: ApplicationFiled: May 5, 2025Publication date: February 5, 2026Applicant: Oracle International CorporationInventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
-
Publication number: 20260037278Abstract: A system encounters an instruction that triggers loading a class. In response to encountering the instruction, the system executes a bytecode verification of the class. Executing the bytecode verification identifies an object instantiation process that, when executed, instantiates an object representing an instance of the class, and determines that the object instantiation process, when executed in the runtime environment, assigns an initial value to an instance field prior to the object being accessible in the runtime environment. In response to determining that the object instantiation process, when executed, assigns the initial value to the instance field prior to the object being accessible in the runtime environment, the system loads the class in the runtime environment.Type: ApplicationFiled: May 5, 2025Publication date: February 5, 2026Applicant: Oracle International CorporationInventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
-
Patent number: 10846147Abstract: 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: GrantFiled: November 1, 2016Date of Patent: November 24, 2020Assignee: International Business Machines CorporationInventors: Daniel J. Heidinga, Angela Lin, Babneet Singh
-
Patent number: 10649797Abstract: 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: GrantFiled: January 2, 2019Date of Patent: May 12, 2020Assignee: International Business Machines CorporationInventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
-
Publication number: 20190138332Abstract: 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: ApplicationFiled: January 2, 2019Publication date: May 9, 2019Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
-
Patent number: 10235165Abstract: 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: GrantFiled: November 9, 2016Date of Patent: March 19, 2019Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
-
Patent number: 10228957Abstract: 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: GrantFiled: January 20, 2017Date of Patent: March 12, 2019Assignee: International Business Machines CorporationInventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
-
Publication number: 20180210743Abstract: 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: ApplicationFiled: January 20, 2017Publication date: July 26, 2018Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
-
Publication number: 20180203853Abstract: 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: ApplicationFiled: January 13, 2017Publication date: July 19, 2018Inventors: Oluwatobi A. AJILA, Daniel J. HEIDINGA
-
Patent number: 10001979Abstract: 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: GrantFiled: November 25, 2015Date of Patent: June 19, 2018Assignee: International Business Machines CorporationInventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
-
Publication number: 20180121255Abstract: 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: ApplicationFiled: November 1, 2016Publication date: May 3, 2018Inventors: Daniel J. HEIDINGA, Angela LIN, Babneet SINGH
-
Publication number: 20170147304Abstract: 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: ApplicationFiled: November 25, 2015Publication date: May 25, 2017Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
-
Publication number: 20170139689Abstract: 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: ApplicationFiled: November 12, 2015Publication date: May 18, 2017Inventors: Daniel J. Heidinga, Bjøm Vàrdal
-
Patent number: 9632755Abstract: 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: GrantFiled: October 6, 2015Date of Patent: April 25, 2017Assignee: International Business Machines CorporationInventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
-
Publication number: 20170097811Abstract: 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: ApplicationFiled: October 6, 2015Publication date: April 6, 2017Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
-
Publication number: 20170090920Abstract: 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: ApplicationFiled: November 9, 2016Publication date: March 30, 2017Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
-
Patent number: 9588778Abstract: 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: GrantFiled: June 29, 2015Date of Patent: March 7, 2017Assignee: International Business Machines CorporationInventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor
-
Patent number: 9569206Abstract: 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: GrantFiled: September 29, 2015Date of Patent: February 14, 2017Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
-
Publication number: 20160378508Abstract: 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: ApplicationFiled: June 29, 2015Publication date: December 29, 2016Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor