Patents by Inventor Vijay Sundaresan
Vijay Sundaresan 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: 9229744Abstract: A classloader cache class definition is obtained by a processor. The classloader cache class definition includes code that creates a classloader object cache that is referenced by a strong internal reference by a classloader object in response to instantiation of the classloader cache class definition. A classloader object cache is instantiated using the obtained classloader cache class definition. The strong internal reference is created at instantiation of the classloader object cache. A public interface to the classloader object cache is provided. The public interface to the classloader object cache operates as a weak reference to the classloader object cache and provides external access to the classloader object cache.Type: GrantFiled: March 29, 2012Date of Patent: January 5, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Andres H. Voldman
-
Patent number: 9229743Abstract: A classloader cache class definition is obtained by a processor. The classloader cache class definition includes code that creates a classloader object cache that is referenced by a strong internal reference by a classloader object in response to instantiation of the classloader cache class definition. A classloader object cache is instantiated using the obtained classloader cache class definition. The strong internal reference is created at instantiation of the classloader object cache. A public interface to the classloader object cache is provided. The public interface to the classloader object cache operates as a weak reference to the classloader object cache and provides external access to the classloader object cache.Type: GrantFiled: September 23, 2011Date of Patent: January 5, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Andres H. Voldman
-
Publication number: 20150378727Abstract: In an approach for decreasing an execution time of a computer code, one or more processors receive a computer code and identify a frequently executed region of the computer code. One or more processors identify a long-form conditional branch in the frequently executed region of the computer code that is infrequently taken. One or more processors generate a long-form unconditional branch with a target that is a target of the long-form conditional branch. One or more processors modify the long-form conditional branch to be a short-form conditional branch. One or more processors insert the long-form unconditional branch in the computer code within a branch distance of the short-form conditional branch. One or more processors modify a target of the short-form conditional branch to be a location of the long-form unconditional branch in the computer code.Type: ApplicationFiled: June 25, 2014Publication date: December 31, 2015Inventors: Patrick R. Doyle, Vijay Sundaresan
-
Publication number: 20150339139Abstract: A method for creating an enhanced array is provided. An enhanced compiler generates an instrumented class file for an enhanced array class. The enhanced array class comprises at least one element class. The enhanced runtime loads the instrumented class file of the enhanced array class. The enhanced runtime loads a class file corresponding to the element class of the enhanced array class, and builds an internal data structure corresponding to the enhanced array class. An amount of memory storage is calculated for storing the enhanced array instance, and the amount of memory storage is allocated.Type: ApplicationFiled: August 29, 2014Publication date: November 26, 2015Inventors: Angela Lin, Ryan A. Sciampacone, Vijay Sundaresan, Karl M. Taylor
-
Publication number: 20150339138Abstract: A method for creating an enhanced array is provided. An enhanced compiler generates an instrumented class file for an enhanced array class. The enhanced array class comprises at least one element class. The enhanced runtime loads the instrumented class file of the enhanced array class. The enhanced runtime loads a class file corresponding to the element class of the enhanced array class, and builds an internal data structure corresponding to the enhanced array class. An amount of memory storage is calculated for storing the enhanced array instance, and the amount of memory storage is allocated.Type: ApplicationFiled: May 20, 2014Publication date: November 26, 2015Applicant: International Business Machines CorporationInventors: Angela Lin, Ryan A. Sciampacone, Vijay Sundaresan, Karl M. Taylor
-
Publication number: 20140344794Abstract: A computer-implemented method, system, and computer program product for performing object collocation on a computer system are provided. The method includes analyzing a sequence of computer instructions for object allocations and uses of the allocated objects. The method further includes creating an allocation interference graph of object allocation nodes with edges indicating pairs of allocations to be omitted from collocation. The method also includes coloring the allocation interference graph such that adjacent nodes are assigned different colors, and creating an object allocation at a program point prior to allocations of a selected color from the allocation interference graph. The method additionally includes storing an address associated with the created object allocation in a collocation pointer, and replacing a use of each allocation of the selected color with a use of the collocation pointer to collocate multiple objects.Type: ApplicationFiled: July 30, 2014Publication date: November 20, 2014Inventors: Patrick Doyle, Pramod Ramarao, Vijay Sundaresan
-
Publication number: 20140325493Abstract: 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: ApplicationFiled: March 7, 2014Publication date: October 30, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: MARK G. STOODLEY, VIJAY SUNDARESAN
-
Patent number: 8826256Abstract: A computer-implemented method, system, and computer program product for performing object collocation on a computer system are provided. The method includes analyzing a sequence of computer instructions for object allocations and uses of the allocated objects. The method further includes creating an allocation interference graph of object allocation nodes with edges indicating pairs of allocations to be omitted from collocation. The method also includes coloring the allocation interference graph such that adjacent nodes are assigned different colors, and creating an object allocation at a program point prior to allocations of a selected color from the allocation interference graph. The method additionally includes storing an address associated with the created object allocation in a collocation pointer, and replacing a use of each allocation of the selected color with a use of the collocation pointer to collocate multiple objects.Type: GrantFiled: August 17, 2010Date of Patent: September 2, 2014Assignee: International Business Machines CorporationInventors: Patrick Doyle, Pramod Ramarao, Vijay Sundaresan
-
Patent number: 8701097Abstract: A compiler and method of optimizing code by partial inlining of a subset of blocks of called blocks of code into calling blocks of code. A restart of the called blocks of code is provided for the case where non-inlined blocks of code are reached at run time. Blocks selected for partial inlining may include global side effects depending on the computer program environment. Global side effects in the selected blocks of code leading to a restart are sanitized in order to defer changes to the global state of the computer program.Type: GrantFiled: February 8, 2011Date of Patent: April 15, 2014Assignee: International Business Machines CorporationInventors: Patrick R. Doyle, James I. A. Gartley, Derek B. Inglis, Vijay Sundaresan
-
Patent number: 8689198Abstract: A compiling system and method for optimizing binary code. The method includes the step of replacing a memory access on a stack area in order to save a value of a register with local variable access. The method further includes: giving a call number to a call instruction and an inlined code in response to an inline expansion of a code to be called by the call instruction; creating a parent-child relationship information for at least one of the call number; processing the memory accesses with an escaped stack pointer as a base address if a stack pointer has escaped; prohibiting a replacement of a prohibited memory access if the stack pointer has escaped; and replacing unprohibited memory access with the local variable access if the stack pointer has escaped.Type: GrantFiled: August 10, 2011Date of Patent: April 1, 2014Assignee: International Business Machines CorporationInventors: Motohiro Kawahito, Ali I. Sheikh, Vijay Sundaresan
-
Patent number: 8667507Abstract: Systems and methods of passing arguments between client and server contexts may provide for detecting an in-process call between a client and a server, wherein the client and the server share a common virtual machine instance. An object copy from a source object of the in-process call to a destination object can be conducted based on an internal class structure of the virtual machine instance. The object copy procedure may be repeated for a plurality of source objects of the in-process call.Type: GrantFiled: March 21, 2012Date of Patent: March 4, 2014Assignee: International Business Machines CorporationInventors: Aruna A. Kalagananam, Derek B. Inglis, Vijay Sundaresan
-
Patent number: 8555266Abstract: A computer-implemented method, apparatus, and computer program product to manage variable assignments in a program. The process identifies a set of variable assignments that is live on a portion of paths to form a set of identified variable assignments. Each of the set of identified variable assignments assign a value to at least one variable of a set of variables. The process determines a set of program points at which the set of identified variable assignments is live on all paths. The process also moves the set of identified variable assignments to the set of program points in response to determining that the set of identified variable assignments is movable to the set of program points.Type: GrantFiled: November 13, 2007Date of Patent: October 8, 2013Assignee: International Business Machines CorporationInventors: Reid T. Copeland, Mark Graham Stoodley, Vijay Sundaresan, Ning Thomas Wong
-
Publication number: 20130243175Abstract: 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: ApplicationFiled: March 15, 2012Publication date: September 19, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Graham A. Chapman, James I. Gartley, Daniel J. Heidinga, Vijay Sundaresan
-
Patent number: 8516501Abstract: Systems and methods of passing arguments between client and server contexts may provide for detecting an in-process call between a client and a server, wherein the client and the server share a common virtual machine instance. An object copy from a source object of the in-process call to a destination object can be conducted based on an internal class structure of the virtual machine instance. The object copy procedure may be repeated for a plurality of source objects of the in-process call.Type: GrantFiled: August 11, 2010Date of Patent: August 20, 2013Assignee: International Business Machines CorporationInventors: Aruna A. Kalagananam, Derek B. Inglis, Vijay Sundaresan
-
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
-
Publication number: 20130080707Abstract: A classloader cache class definition is obtained by a processor. The classloader cache class definition includes code that creates a classloader object cache that is referenced by a strong internal reference by a classloader object in response to instantiation of the classloader cache class definition. A classloader object cache is instantiated using the obtained classloader cache class definition. The strong internal reference is created at instantiation of the classloader object cache. A public interface to the classloader object cache is provided. The public interface to the classloader object cache operates as a weak reference to the classloader object cache and provides external access to the classloader object cache.Type: ApplicationFiled: March 29, 2012Publication date: March 28, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Andres H. Voldman
-
Publication number: 20130080706Abstract: A classloader cache class definition is obtained by a processor. The classloader cache class definition includes code that creates a classloader object cache that is referenced by a strong internal reference by a classloader object in response to instantiation of the classloader cache class definition. A classloader object cache is instantiated using the obtained classloader cache class definition. The strong internal reference is created at instantiation of the classloader object cache. A public interface to the classloader object cache is provided. The public interface to the classloader object cache operates as a weak reference to the classloader object cache and provides external access to the classloader object cache.Type: ApplicationFiled: September 23, 2011Publication date: March 28, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Andres H. Voldman
-
Patent number: 8276134Abstract: An improved system and computer programming product for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.Type: GrantFiled: June 9, 2008Date of Patent: September 25, 2012Assignee: International Business Machines CorporationInventors: Nikola Grcevski, Kevin Alexander Stoodley, Mark Graham Stoodley, Vijay Sundaresan
-
Publication number: 20120192206Abstract: Systems and methods of passing arguments between client and server contexts may provide for detecting an in-process call between a client and a server, wherein the client and the server share a common virtual machine instance. An object copy from a source object of the in-process call to a destination object can be conducted based on an internal class structure of the virtual machine instance. The object copy procedure may be repeated for a plurality of source objects of the in-process call.Type: ApplicationFiled: March 21, 2012Publication date: July 26, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Derek B. Inglis, Aruna A. Kalagananam, Vijay Sundaresan
-
Patent number: 8201158Abstract: Under the present invention, program code is examined (statically or dynamically) for characteristics indicative of a potential to generate multiple threads. If none are found, single threaded optimization(s) such as desynchronization, optimization of globals, etc., can be implemented. In addition, if the program code is later revealed to have the potential to generate multiple threads, the single threaded optimization(s) can be corrected to avoid incorrect execution.Type: GrantFiled: April 9, 2008Date of Patent: June 12, 2012Assignee: International Business Machines CorporationInventors: Derek B. Inglis, Trent A. Gray-Donald, Kevin A. Stoodley, Vijay Sundaresan