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).

  • Publication number: 20180081651
    Abstract: A method and system for enhanced local communing optimization of compilation of a program. Within a first pass of a two pass approach, a determination is made as to where in the program to evaluate volatile expressions that can be commoned. In a second pass of the two pass approach, all remaining expressions that are not volatile expressions are commoned.
    Type: Application
    Filed: November 16, 2017
    Publication date: March 22, 2018
    Inventors: Andrew J. Craik, Patrick R. Doyle, Vijay Sundaresan
  • Patent number: 9898268
    Abstract: A method and system for enhanced local commoning optimization of compilation of a program. Commoning of volatiles within an extended block for a particular memory model associated with a particular programming language is performed, using a two pass approach. Within a first pass, a determination is made as to where in the program to evaluate volatile expressions that can be commoned. In a second pass, all remaining expressions that are not volatile expressions are commoned.
    Type: Grant
    Filed: July 20, 2016
    Date of Patent: February 20, 2018
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Patrick R. Doyle, Vijay Sundaresan
  • Publication number: 20180024823
    Abstract: A method and system for enhanced local commoning optimization of compilation of a program. Commoning of volatiles within an extended block for a particular memory model associated with a particular programming language is performed, using a two pass approach. Within a first pass, a determination is made as to where in the program to evaluate volatile expressions that can be commoned. In a second pass, all remaining expressions that are not volatile expressions are commoned.
    Type: Application
    Filed: July 20, 2016
    Publication date: January 25, 2018
    Inventors: Andrew J. Craik, Patrick R. Doyle, Vijay Sundaresan
  • Publication number: 20180024822
    Abstract: A method and system for partial connection of iterations during loop unrolling during compilation of a program by a compiler. Unrolled loop iterations of a loop in the program are selectively connected, including redirecting, to the head of the loop, undesirable edges of a control flow from one iteration to a next iteration of the loop. Merges on a path of hot code are removed to increase a scope for optimization of the program. The head of the loop and a start of a replicated loop body of the loop are equivalent points of the control flow. A sequence of blocks on the path of hot code, unpolluted by a control flow of a path of cold code, is extended during the compilation. Information computed by an optimizer about the hot code in a first iteration is used to further optimize a second iteration, and the loop is further unrolled.
    Type: Application
    Filed: July 20, 2016
    Publication date: January 25, 2018
    Inventors: Andrew J. Craik, Vijay Sundaresan
  • Publication number: 20170329619
    Abstract: Multi-byte compressed string representation embodiments define a String class control field identifying compression as enabled/disabled, and another control field, identifying a decompressed string created when compression enabled. On pattern matching by a compiler, noping tests based on null setting of stringCompressionFlag and registering a class loading assumption on a nop location. When arguments to a String class constructor are not compressible, a decompressed String is created and stringCompressionFlag initialized. Endian-aware helper methods for reading/writing byte and character values and helper methods for widening, narrowing, truncation, conversion and masking are defined. Enhanced String class constructors, when characters are not compressible, create a decompressed String, and initialize stringCompressionFlag triggering class load assumptions, overwriting all nopable patch points.
    Type: Application
    Filed: May 13, 2016
    Publication date: November 16, 2017
    Inventors: Andrew J. CRAIK, Filip JEREMIC, Vijay SUNDARESAN
  • Publication number: 20170168781
    Abstract: A computer-implemented method for class load optimizing. The method determines whether a caller method within the class has a specific signature call using the context of the class. The method determines a callee method within the class using the context of the class. Furthermore, the method retrieves a class object of the class and converts the callee method to a second method, in response to the caller method having the specific signature, the callee method being of the specific signature and callee method being the first argument of the caller method.
    Type: Application
    Filed: August 9, 2016
    Publication date: June 15, 2017
    Inventors: Patrick R. Doyle, Prashanth S. Krishna, Sathiskumar Palaniappan, Vijay Sundaresan
  • 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
  • Patent number: 9507574
    Abstract: Expressions are selectively retrieved from memory during compilation by scanning code for expressions that can be effectively accessed directly from highly cached memory without needing to be loaded into a register, e.g., expressions that are not modified by the rest of the code. The scanning may include examining the use of the expression. Those expressions may be retrieved directly from the highly cached memory rather than being loaded into registers. This reduces compilation time.
    Type: Grant
    Filed: September 28, 2006
    Date of Patent: November 29, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Marcel Mitran, Vijay Sundaresan, Alexander Vaseilevskiy
  • Patent number: 9471341
    Abstract: A computer-implemented method for class load optimizing. The method identifies a class in which a context can be determined at a compile time, using a compiler. The method determines whether a caller method within the class has a specific signature call using the context of the class. The method determines a callee method within the class using the context of the class. The method determines whether the callee method's receiver is a first argument of the caller method. Furthermore, the method retrieves a class object of the class and converts the callee method to a second method, in response to the caller method having the specific signature, the callee method being of the specific signature and callee method being the first argument of the caller method.
    Type: Grant
    Filed: December 11, 2015
    Date of Patent: October 18, 2016
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Prashanth S. Krishna, Sathiskumar Palaniappan, Vijay Sundaresan
  • Patent number: 9448778
    Abstract: 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: Grant
    Filed: July 30, 2014
    Date of Patent: September 20, 2016
    Assignee: International Business Machines Corporation
    Inventors: Patrick Doyle, Pramod Ramarao, Vijay Sundaresan
  • 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: 9389843
    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, 2013
    Date of Patent: July 12, 2016
    Assignee: International Business Machines Corporation
    Inventors: Graham Alan Chapman, James Ian Andrew Gartley, Daniel Jonathan Heidinga, Vijay Sundaresan
  • Publication number: 20160162296
    Abstract: In an approach for decreasing an execution time of a computer code, one or more processors identify a long-form conditional branch that is included in a first region of a computer code. The one or more processors generate a long-form unconditional branch with a target that is a target of a long-form conditional branch. The one or more processors modify the long-form conditional branch to be a short-form conditional branch. The one or more processors insert the long-form unconditional branch into the computer code within a branch distance of the short-form conditional branch. The 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: Application
    Filed: February 18, 2016
    Publication date: June 9, 2016
    Inventors: Patrick R. Doyle, Vijay Sundaresan
  • Patent number: 9298436
    Abstract: 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: Grant
    Filed: June 25, 2014
    Date of Patent: March 29, 2016
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Vijay Sundaresan
  • Publication number: 20160070570
    Abstract: 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: Application
    Filed: November 18, 2015
    Publication date: March 10, 2016
    Inventors: Vijay Sundaresan, Andres H. Voldman
  • Patent number: 9268543
    Abstract: A process, a computer program product, and a computer system for efficient code cache management implemented by a just-in-time compiler are provided. Embodiments of the present invention provide a practical approach to compile effectively for methods that are frequently executed over a short time period but are subsequently not executed frequently. The disclosed approach reduces the detrimental effects of compilation of such infrequently executed methods on throughput and garbage collection pause times.
    Type: Grant
    Filed: September 23, 2014
    Date of Patent: February 23, 2016
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Marcel Mitran, Marius Pirvu, Kevin A. Stoodley, Vijay Sundaresan
  • 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: 9250936
    Abstract: 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: Grant
    Filed: May 20, 2014
    Date of Patent: February 2, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Angela Lin, Ryan A. Sciampacone, Vijay Sundaresan, Karl M. Taylor
  • Patent number: 9244708
    Abstract: 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: Grant
    Filed: August 29, 2014
    Date of Patent: January 26, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Angela Lin, Ryan A. Sciampacone, Vijay Sundaresan, Karl M. Taylor
  • 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