Patents by Inventor Patrick R. Doyle

Patrick R. Doyle 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: 10379885
    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: Grant
    Filed: November 16, 2017
    Date of Patent: August 13, 2019
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Patrick R. Doyle, Vijay Sundaresan
  • Patent number: 10120666
    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: Grant
    Filed: February 18, 2016
    Date of Patent: November 6, 2018
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Vijay Sundaresan
  • Patent number: 10055210
    Abstract: A method for expanding inline function calls in inlining scenarios includes receiving an ordered list of inlining options for a computer program and a relational data structure representing dependencies between the inlining options, wherein each inlining option includes an associated cost value and an associated benefit value. A maximum-benefit inlining plan for a selected inlining option of the ordered list is then determined, wherein the maximum-benefit inlining plan includes a set of inlining options from the ordered list that provide a maximum combined benefit value for a combined cost value that is equal to or less than a maximum cost budget, subject to the following conditions: each inlining option of the set precedes, or is, the selected inlining option in the ordered list, and for each inlining option of the set, the set also includes each inlining option that the respective inlining option is dependent on.
    Type: Grant
    Filed: August 24, 2016
    Date of Patent: August 21, 2018
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Rachel E. Craik, Patrick R. Doyle
  • Patent number: 10001979
    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: Grant
    Filed: November 25, 2015
    Date of Patent: June 19, 2018
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
  • Patent number: 9965254
    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: Grant
    Filed: August 9, 2016
    Date of Patent: May 8, 2018
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Prashanth S. Krishna, Sathiskumar Palaniappan, Vijay Sundaresan
  • 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: 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: 20170153877
    Abstract: A method for expanding inline function calls in inlining scenarios includes receiving an ordered list of inlining options for a computer program and a relational data structure representing dependencies between the inlining options, wherein each inlining option includes an associated cost value and an associated benefit value. A maximum-benefit inlining plan for a selected inlining option of the ordered list is then determined, wherein the maximum-benefit inlining plan includes a set of inlining options from the ordered list that provide a maximum combined benefit value for a combined cost value that is equal to or less than a maximum cost budget, subject to the following conditions: each inlining option of the set precedes, or is, the selected inlining option in the ordered list, and for each inlining option of the set, the set also includes each inlining option that the respective inlining option is dependent on.
    Type: Application
    Filed: August 24, 2016
    Publication date: June 1, 2017
    Inventors: Andrew J. Craik, Rachel E. Craik, Patrick R. Doyle
  • 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: 9632755
    Abstract: 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: Grant
    Filed: October 6, 2015
    Date of Patent: April 25, 2017
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Publication number: 20170097811
    Abstract: 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: Application
    Filed: October 6, 2015
    Publication date: April 6, 2017
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Patent number: 9495141
    Abstract: A method for expanding inline function calls in inlining scenarios includes receiving an ordered list of inlining options for a computer program and a relational data structure representing dependencies between the inlining options, wherein each inlining option includes an associated cost value and an associated benefit value. A maximum-benefit inlining plan for a selected inlining option of the ordered list is then determined, wherein the maximum-benefit inlining plan includes a set of inlining options from the ordered list that provide a maximum combined benefit value for a combined cost value that is equal to or less than a maximum cost budget, subject to the following conditions: each inlining option of the set precedes, or is, the selected inlining option in the ordered list, and for each inlining option of the set, the set also includes each inlining option that the respective inlining option is dependent on.
    Type: Grant
    Filed: December 1, 2015
    Date of Patent: November 15, 2016
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Rachel E. Craik, Patrick R. Doyle
  • 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
  • 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
  • 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
  • Publication number: 20150378727
    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: Application
    Filed: June 25, 2014
    Publication date: December 31, 2015
    Inventors: Patrick R. Doyle, Vijay Sundaresan
  • Patent number: 8713289
    Abstract: Emulation of source machine instructions is provided in which target machine CPU condition codes are employed to produce emulated condition code settings without the use, encoding or generation of branching instructions.
    Type: Grant
    Filed: January 30, 2007
    Date of Patent: April 29, 2014
    Assignee: International Business Machines Corporation
    Inventors: Reid T. Copeland, Patrick R. Doyle, Charles B. Hall, Andrew Johnson, Ali I. Sheikh