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: 11106475Abstract: 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: GrantFiled: July 26, 2019Date of Patent: August 31, 2021Assignee: International Business Machines CorporationInventor: Mark G. Stoodley
-
Publication number: 20190347112Abstract: 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: ApplicationFiled: July 26, 2019Publication date: November 14, 2019Inventor: Mark G. Stoodley
-
Patent number: 10467026Abstract: 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: GrantFiled: February 5, 2016Date of Patent: November 5, 2019Assignee: International Business Machines CorporationInventor: Mark G. Stoodley
-
Publication number: 20160154658Abstract: 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: ApplicationFiled: February 5, 2016Publication date: June 2, 2016Inventor: Mark G. Stoodley
-
Patent number: 9286085Abstract: 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: GrantFiled: June 27, 2014Date of Patent: March 15, 2016Assignee: International Business Machines CorporationInventor: Mark G. Stoodley
-
Patent number: 9262172Abstract: 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: GrantFiled: March 15, 2013Date of Patent: February 16, 2016Assignee: International Business Machines CorporationInventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
-
Patent number: 9250865Abstract: 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: GrantFiled: March 7, 2014Date of Patent: February 2, 2016Assignee: International Business Machines CorporationInventors: Mark G. Stoodley, Vijay Sundaresan
-
Patent number: 9239706Abstract: 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: GrantFiled: April 24, 2013Date of Patent: January 19, 2016Assignee: International Business Machines CorporationInventors: Mark G. Stoodley, Vijay Sundaresan
-
Publication number: 20150378752Abstract: 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: ApplicationFiled: June 27, 2014Publication date: December 31, 2015Inventor: Mark G. Stoodley
-
Patent number: 9164783Abstract: 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: GrantFiled: August 20, 2007Date of Patent: October 20, 2015Assignee: International Business Machines CorporationInventor: Mark G. Stoodley
-
Patent number: 9152535Abstract: 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: GrantFiled: November 2, 2012Date of Patent: October 6, 2015Assignee: International Business Machines CorporationInventor: Mark G. Stoodley
-
Patent number: 8990819Abstract: 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: GrantFiled: December 28, 2012Date of Patent: March 24, 2015Assignee: International Business Machines CorporationInventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
-
Publication number: 20140096141Abstract: 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: ApplicationFiled: December 28, 2012Publication date: April 3, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Martin Ohmacht, Raul E. Silvera, Mark G. Stoodley, Kai-Ting A. Wang
-
Patent number: 8448157Abstract: 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: GrantFiled: October 26, 2010Date of Patent: May 21, 2013Assignee: International Business Machines CorporationInventors: Marcel Mitran, Kishor V. Patil, Joran S. C. Siu, Mark G. Stoodley, Vijay Sundaresan
-
Patent number: 8286152Abstract: 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: GrantFiled: August 22, 2007Date of Patent: October 9, 2012Assignee: International Business Machines CorporationInventors: Nikola Grcevski, Derek B. Inglis, Marius Pirvu, Mark G. Stoodley
-
Publication number: 20120054467Abstract: 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: ApplicationFiled: September 1, 2010Publication date: March 1, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael S. Fulton, Mark G. Stoodley
-
Patent number: 7840950Abstract: 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: GrantFiled: March 9, 2006Date of Patent: November 23, 2010Assignee: International Business Machines CorporationInventors: Kevin A. Stoodley, Mark G. Stoodley
-
Patent number: 7823150Abstract: 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: GrantFiled: January 25, 2005Date of Patent: October 26, 2010Assignee: International Business Machines CorporationInventors: Nikola Grcevski, Kevin A. Stoodley, Mark G. Stoodley, Vijay Sundaresan
-
Publication number: 20090055821Abstract: 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: ApplicationFiled: August 22, 2007Publication date: February 26, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Nikola Grcevski, Derek B. Inglis, Marius Pirvu, Mark G. Stoodley
-
Publication number: 20090055808Abstract: 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: ApplicationFiled: August 20, 2007Publication date: February 26, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Mark G. Stoodley