Patents by Inventor Mark G. Stoodley

Mark G. Stoodley 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: 11106475
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Grant
    Filed: July 26, 2019
    Date of Patent: August 31, 2021
    Assignee: International Business Machines Corporation
    Inventor: Mark G. Stoodley
  • Publication number: 20190347112
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Application
    Filed: July 26, 2019
    Publication date: November 14, 2019
    Inventor: Mark G. Stoodley
  • Patent number: 10467026
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Grant
    Filed: February 5, 2016
    Date of Patent: November 5, 2019
    Assignee: International Business Machines Corporation
    Inventor: Mark G. Stoodley
  • Publication number: 20160154658
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Application
    Filed: February 5, 2016
    Publication date: June 2, 2016
    Inventor: Mark G. Stoodley
  • Patent number: 9286085
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Grant
    Filed: June 27, 2014
    Date of Patent: March 15, 2016
    Assignee: International Business Machines Corporation
    Inventor: Mark G. Stoodley
  • Patent number: 9262172
    Abstract: A method for rolling back speculative threads in symmetric-multiprocessing (SMP) environments is disclosed. In one embodiment, such a method includes detecting an aborted thread at runtime and determining whether the aborted thread is an oldest aborted thread. In the event the aborted thread is the oldest aborted thread, the method sets a high-priority request for allocation to an absolute thread number associated with the oldest aborted thread. The method further detects that the high-priority request is set and, in response, modifies a local allocation token of the oldest aborted thread. The modification prompts the oldest aborted thread to retry a work unit associated with its absolute thread number. The oldest aborted thread subsequently initiates the retry of a successor thread by updating the successor thread's local allocation token. A corresponding apparatus and computer program product are also disclosed.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: February 16, 2016
    Assignee: International Business Machines Corporation
    Inventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
  • Patent number: 9250865
    Abstract: A method, apparatus, and/or computer program product performs selective speculative class-based optimization through the use of a type propagation analysis of class. Responsive to a determination that the type of class is not a fixed type, a determination is made as to whether the class is sub-classed. Responsive to a determination the class is not sub-classed, a virtual synthetic property method is created. The virtual synthetic property method is accommodated in an enhanced java virtual machine using a stack frame type. The stack frame type has associated metadata for throwing an exception and an invisibility property. The virtual synthetic property method, along with a virtual guard, is inlined, and a slow path is created. The slow path handles executions of the virtual synthetic property method when sub-classes of the class, which override an implementation of the virtual synthetic property method, are loaded in the future.
    Type: Grant
    Filed: March 7, 2014
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: Mark G. Stoodley, Vijay Sundaresan
  • Patent number: 9239706
    Abstract: A method, apparatus, and/or computer program product performs selective speculative class-based optimization through the use of a type propagation analysis of class. Responsive to a determination that the type of class is not a fixed type, a determination is made as to whether the class is sub-classed. Responsive to a determination the class is not sub-classed, a virtual synthetic property method is created. The virtual synthetic property method is accommodated in an enhanced java virtual machine using a stack frame type. The stack frame type has associated metadata for throwing an exception and an invisibility property. The virtual synthetic property method, along with a virtual guard, is inlined, and a slow path is created. The slow path handles executions of the virtual synthetic property method when sub-classes of the class, which override an implementation of the virtual synthetic property method, are loaded in the future.
    Type: Grant
    Filed: April 24, 2013
    Date of Patent: January 19, 2016
    Assignee: International Business Machines Corporation
    Inventors: Mark G. Stoodley, Vijay Sundaresan
  • Publication number: 20150378752
    Abstract: Updating a native class pointer in persisted compiled code for use in an execution environment other than the one in which the native class pointer was created. This is done by using an identifier, stored with the persisted compiled code, of the class first loaded by the class loader that also loaded the class to which the native class pointer refers. A table is maintained in the execution environment mapping class identifiers to class loaders, and the stored identifier is used to consult this table to find a candidate class loader from those in the current execution environment that can provide the correct updated pointer.
    Type: Application
    Filed: June 27, 2014
    Publication date: December 31, 2015
    Inventor: Mark G. Stoodley
  • Patent number: 9164783
    Abstract: Embodiments of the present invention address deficiencies of the art in respect to load time resolutions and provide a method, system and computer program product for load time resolution of AOT compiled class references in a dynamic binding executing environment. In one embodiment of the invention, a method of resolving class references in AOT compiled code can be provided. The method can include updating AOT code at loading time for already resolved class references in the AOT code, and executing the updated AOT code to resolve remaining unresolved class references in the updated AOT code.
    Type: Grant
    Filed: August 20, 2007
    Date of Patent: October 20, 2015
    Assignee: International Business Machines Corporation
    Inventor: Mark G. Stoodley
  • Patent number: 9152535
    Abstract: Embodiments relate to a computer implemented process, system and program product for identification of a root method for a thread. In one aspect of the embodiment the process includes instrumenting code to form instrumented code and creating stack sample data. It also includes creating method stack sample data in a case that the stack sample data exceeds a stack sample data threshold. It also includes, determining whether a root method is identified, the determining based on using the method stack sample data; and reporting any root method identified for a respective thread.
    Type: Grant
    Filed: November 2, 2012
    Date of Patent: October 6, 2015
    Assignee: International Business Machines Corporation
    Inventor: Mark G. Stoodley
  • Patent number: 8990819
    Abstract: A method for rolling back speculative threads in symmetric-multiprocessing (SMP) environments is disclosed. In one embodiment, such a method includes detecting an aborted thread at runtime and determining whether the aborted thread is an oldest aborted thread. In the event the aborted thread is the oldest aborted thread, the method sets a high-priority request for allocation to an absolute thread number associated with the oldest aborted thread. The method further detects that the high-priority request is set and, in response, modifies a local allocation token of the oldest aborted thread. The modification prompts the oldest aborted thread to retry a work unit associated with its absolute thread number. The oldest aborted thread subsequently initiates the retry of a successor thread by updating the successor thread's local allocation token. A corresponding apparatus and computer program product are also disclosed.
    Type: Grant
    Filed: December 28, 2012
    Date of Patent: March 24, 2015
    Assignee: International Business Machines Corporation
    Inventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
  • Publication number: 20140096141
    Abstract: A method for rolling back speculative threads in symmetric-multiprocessing (SMP) environments is disclosed. In one embodiment, such a method includes detecting an aborted thread at runtime and determining whether the aborted thread is an oldest aborted thread. In the event the aborted thread is the oldest aborted thread, the method sets a high-priority request for allocation to an absolute thread number associated with the oldest aborted thread. The method further detects that the high-priority request is set and, in response, modifies a local allocation token of the oldest aborted thread. The modification prompts the oldest aborted thread to retry a work unit associated with its absolute thread number. The oldest aborted thread subsequently initiates the retry of a successor thread by updating the successor thread's local allocation token. A corresponding apparatus and computer program product are also disclosed.
    Type: Application
    Filed: December 28, 2012
    Publication date: April 3, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
  • Patent number: 8448157
    Abstract: One embodiment of a method for eliminating redundant operations establishing common properties includes identifying a first virtual register storing a first value having a common property. The method may assign the first virtual register to use a real register. The method may further identify a second virtual register storing a second value also having the common property. The method may assign the second virtual register to use the same real register after the first value is no longer live. As a result of assigning the second virtual register to the first real register, the method may eliminate an operation configured to establish the common property for the second virtual register since this operation is redundant and is no longer needed.
    Type: Grant
    Filed: October 26, 2010
    Date of Patent: May 21, 2013
    Assignee: International Business Machines Corporation
    Inventors: Marcel Mitran, Kishor V. Patil, Joran S. C. Siu, Mark G. Stoodley, Vijay Sundaresan
  • Patent number: 8286152
    Abstract: Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast applications start-up and maximal run-time performance. Exemplary embodiments include a just in time compilation method for a virtual machine environment coupled to a memory, including identifying a program structure for compilation, creating a low optimization compiled version of the program structure that is relocatable in the memory, storing into a persistent cache the low optimization compiled version of the program structure that is relocatable and relocating the low optimization compiled version of the program structure into a virtual machine address space in the memory, wherein relocating the low optimization compiled version of the program structure includes transforming the low optimization compiled version to a compiled version with fixed addresses in the memory that can be executed.
    Type: Grant
    Filed: August 22, 2007
    Date of Patent: October 9, 2012
    Assignee: International Business Machines Corporation
    Inventors: Nikola Grcevski, Derek B. Inglis, Marius Pirvu, Mark G. Stoodley
  • Publication number: 20120054467
    Abstract: A method for implementing a hash map to improve performance consistency is disclosed herein. In one embodiment, such a method includes providing a hash map comprising a set of tables, the set of tables initially containing a first table. When the first table is full, the method augments the hash map by adding a second table to the set of tables. Similarly, when the second table is full, the method augments the hash map by adding a third table to the set of tables. A similar technique may be used to add additional tables to the hash map. When searching for a value in any of the tables in the hash map, the method uses the same hash code. A corresponding computer program product and apparatus are also disclosed herein.
    Type: Application
    Filed: September 1, 2010
    Publication date: March 1, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael S. Fulton, Mark G. Stoodley
  • Patent number: 7840950
    Abstract: Optimizations are programmatically applied by a compiler (preferably, a just-in-time or “JIT” compiler), and enable achieving improved performance while a variable acts as a global constant, yet also allow code to execute correctly if the global constant's run-time value changes from the value on which the optimization was originally based. Code snippets that dynamically patch executable code are described, where these code snippets take corrective actions to enable correct program execution following a run-time change to the value of a glacial constant. A backup recovery path may also be maintained, where this path provides code that is executed in the event of a change to a glacial constant and that treats the glacial constant as a variable. Recompilation may also be used after a change to a glacial constant, where the originally-compiled code has made an assumption about the glacial constant's value that is no longer accurate. Combinations of these approaches may be used.
    Type: Grant
    Filed: March 9, 2006
    Date of Patent: November 23, 2010
    Assignee: International Business Machines Corporation
    Inventors: Kevin A. Stoodley, Mark G. Stoodley
  • Patent number: 7823150
    Abstract: Under the present invention, a locking primitive associated with a shared data object is automatically transformed to allow multiple read-only locks if certain conditions are met. To this extent, when a read-only lock on a shared data object is desired, a thread identifier of an object header lock word (hereinafter “lock word”) associated with the shared data object is examined to determine if a read-write lock on the shared data object already exists. If not, then the thread identifier is set to a predetermined value indicative of read-only locks, and a thread count in the lock word is incremented. If another thread attempts a read-only lock, the thread identifier will be examined for the predetermined value. If it is present, the thread count will be incremented again, and a second read-only lock will be simultaneously established.
    Type: Grant
    Filed: January 25, 2005
    Date of Patent: October 26, 2010
    Assignee: International Business Machines Corporation
    Inventors: Nikola Grcevski, Kevin A. Stoodley, Mark G. Stoodley, Vijay Sundaresan
  • Publication number: 20090055821
    Abstract: Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast applications start-up and maximal run-time performance. Exemplary embodiments include a just in time compilation method for a virtual machine environment coupled to a memory, including identifying a program structure for compilation, creating a low optimization compiled version of the program structure that is relocatable in the memory, storing into a persistent cache the low optimization compiled version of the program structure that is relocatable and relocating the low optimization compiled version of the program structure into a virtual machine address space in the memory, wherein relocating the low optimization compiled version of the program structure includes transforming the low optimization compiled version to a compiled version with fixed addresses in the memory that can be executed.
    Type: Application
    Filed: August 22, 2007
    Publication date: February 26, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Nikola Grcevski, Derek B. Inglis, Marius Pirvu, Mark G. Stoodley
  • Publication number: 20090055808
    Abstract: Embodiments of the present invention address deficiencies of the art in respect to load time resolutions and provide a method, system and computer program product for load time resolution of AOT compiled class references in a dynamic binding executing environment. In one embodiment of the invention, a method of resolving class references in AOT compiled code can be provided. The method can include updating AOT code at loading time for already resolved class references in the AOT code, and executing the updated AOT code to resolve remaining unresolved class references in the updated AOT code.
    Type: Application
    Filed: August 20, 2007
    Publication date: February 26, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Mark G. Stoodley