Patents by Inventor Michael Alan Dougherty

Michael Alan Dougherty 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: 11210071
    Abstract: The present disclosure relates to devices and methods for transforming program source code using a rematerialization operation. The devices and methods may identify at least one hot spot with high register pressure in a program source code for an application and identify a plurality of live variables within the at least one hot spot. The devices and methods may group the plurality of live variables by a basic block that has contained a define or single use of the plurality of live variables. The devices and methods may build a directed acyclic graph (DAG) for each basic block that has a grouped plurality of live variables. The devices and methods may save the DAG as a candidate instruction to move in the program source code and may generate transformed program source code for the application by moving the candidate instruction.
    Type: Grant
    Filed: April 1, 2020
    Date of Patent: December 28, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Xiang Li, David McCarthy Peixotto, Michael Alan Dougherty
  • Patent number: 11200061
    Abstract: Examples are disclosed herein that relate to performing rematerialization operation(s) on program source code prior to instruction scheduling. In one example, a method includes prior to performing instruction scheduling on program source code, for each basic block of the program source code, determining a register pressure at a boundary of the basic block, determining whether the register pressure at the boundary is greater than a target register pressure, based on the register pressure at the boundary being greater than the target register pressure, identifying one or more candidate instructions in the basic block suitable for rematerialization to reduce the register pressure at the boundary, and performing a rematerialization operation on at least one of the one or more candidate instructions to reduce the register pressure at the boundary to be less than the target register pressure.
    Type: Grant
    Filed: February 3, 2020
    Date of Patent: December 14, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Xiang Li, Michael Alan Dougherty, David McCarthy Peixotto
  • Publication number: 20210311708
    Abstract: The present disclosure relates to devices and methods for transforming program source code using a rematerialization operation. The devices and methods may identify at least one hot spot with high register pressure in a program source code for an application and identify a plurality of live variables within the at least one hot spot. The devices and methods may group the plurality of live variables by a basic block that has contained a define or single use of the plurality of live variables. The devices and methods may build a directed acyclic graph (DAG) for each basic block that has a grouped plurality of live variables. The devices and methods may save the DAG as a candidate instruction to move in the program source code and may generate transformed program source code for the application by moving the candidate instruction.
    Type: Application
    Filed: April 1, 2020
    Publication date: October 7, 2021
    Inventors: Xiang LI, David McCarthy PEIXOTTO, Michael Alan DOUGHERTY
  • Publication number: 20210149673
    Abstract: Examples are disclosed herein that relate to performing rematerialization operation(s) on program source code prior to instruction scheduling. In one example, a method includes prior to performing instruction scheduling on program source code, for each basic block of the program source code, determining a register pressure at a boundary of the basic block, determining whether the register pressure at the boundary is greater than a target register pressure, based on the register pressure at the boundary being greater than the target register pressure, identifying one or more candidate instructions in the basic block suitable for rematerialization to reduce the register pressure at the boundary, and performing a rematerialization operation on at least one of the one or more candidate instructions to reduce the register pressure at the boundary to be less than the target register pressure.
    Type: Application
    Filed: February 3, 2020
    Publication date: May 20, 2021
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Xiang LI, Michael Alan DOUGHERTY, David McCarthy PEIXOTTO
  • Patent number: 10949209
    Abstract: Examples described herein generally relate to generating, from a listing of source code, a plurality of basic blocks for compiling into intermediate language, determining, for a first basic block of the plurality of basic blocks, first heuristics related to applying a first plurality of optimizations to the first basic block, determining, for a second basic block of the plurality of basic blocks, second heuristics related to applying a second plurality of optimizations to the second basic block, and applying, based on the first heuristics and the second heuristics, one of the first plurality of optimizations to the first basic block to schedule first instructions for the first basic block and one of the second plurality of optimizations to the second basic block to schedule second instructions for the second basic block.
    Type: Grant
    Filed: December 31, 2018
    Date of Patent: March 16, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Xiang Li, Michael Alan Dougherty, David McCarthy Peixotto
  • Publication number: 20200210194
    Abstract: Examples described herein generally relate to generating, from a listing of source code, a plurality of basic blocks for compiling into intermediate language, determining, for a first basic block of the plurality of basic blocks, first heuristics related to applying a first plurality of optimizations to the first basic block, determining, for a second basic block of the plurality of basic blocks, second heuristics related to applying a second plurality of optimizations to the second basic block, and applying, based on the first heuristics and the second heuristics, one of the first plurality of optimizations to the first basic block to schedule first instructions for the first basic block and one of the second plurality of optimizations to the second basic block to schedule second instructions for the second basic block.
    Type: Application
    Filed: December 31, 2018
    Publication date: July 2, 2020
    Inventors: Xiang LI, Michael Alan DOUGHERTY, David McCarthy PEIXOTTO
  • Patent number: 10593010
    Abstract: Examples described herein generally relate to capturing and executing graphics processing operations. A memory trap function can be activated to cause a graphics processing unit (GPU) to report memory accesses in executing graphics processing operations. Based on activating the memory trap function and for each of a sequence of executed graphics processing operations executed by the GPU, a sequence of memory accessing commands and associated portions of memory modified based on executing the sequence of executed graphics processing operations can be received. Each of the sequence of multiple memory accessing commands and associated portions of memory can be stored and provided to the GPU to emulate re-executing of the sequence of executed graphics processing operations by the GPU.
    Type: Grant
    Filed: December 13, 2017
    Date of Patent: March 17, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: James Andrew Goossen, Michael Alan Dougherty, Cole James Brooking
  • Publication number: 20190180407
    Abstract: Examples described herein generally relate to capturing and executing graphics processing operations. A memory trap function can be activated to cause a graphics processing unit (GPU) to report memory accesses in executing graphics processing operations. Based on activating the memory trap function and for each of a sequence of executed graphics processing operations executed by the GPU, a sequence of memory accessing commands and associated portions of memory modified based on executing the sequence of executed graphics processing operations can be received. Each of the sequence of multiple memory accessing commands and associated portions of memory can be stored and provided to the GPU to emulate re-executing of the sequence of executed graphics processing operations by the GPU.
    Type: Application
    Filed: December 13, 2017
    Publication date: June 13, 2019
    Inventors: James Andrew GOOSSEN, Michael Alan DOUGHERTY, Cole James BROOKING
  • Patent number: 9135599
    Abstract: Techniques are disclosed herein for allowing sharing of notes and ideas between electronic devices. The presence of a number of electronic devices is determined. A determination is made that the electronic devices are to be part of a shared workspace. A shared workspace is generated for the electronic devices. The shared workspace is displayed on a display screen of at least one of the electronic devices. The shared workspace that is displayed may be based on the capabilities of the electronic device. The shared workspace that is displayed may reflect the location of the electronic devices.
    Type: Grant
    Filed: June 18, 2009
    Date of Patent: September 15, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: William J. Westerinen, J. Edward Allard, Julio Estrada, Michael Alan Dougherty
  • Publication number: 20100325559
    Abstract: Techniques are disclosed herein for allowing sharing of notes and ideas between electronic devices. The presence of a number of electronic devices is determined. A determination is made that the electronic devices are to be part of a shared workspace. A shared workspace is generated for the electronic devices. The shared workspace is displayed on a display screen of at least one of the electronic devices. The shared workspace that is displayed may be based on the capabilities of the electronic device. The shared workspace that is displayed may reflect the location of the electronic devices.
    Type: Application
    Filed: June 18, 2009
    Publication date: December 23, 2010
    Inventors: William J. Westerinen, J. Edward Allard, Julio Estrada, Michael Alan Dougherty
  • Patent number: 7423645
    Abstract: A graphics rendering system and method is disclosed, in which color values for certain pixels appearing on the screen may be adjusted to create a blurring effect. A pixel-by-pixel comparison may be used to compare differences in depth, as noted in a depth buffer, and if pixel depths are sufficiently close, the pixel's color may be softened to take into account color values of neighboring pixels.
    Type: Grant
    Filed: June 1, 2005
    Date of Patent: September 9, 2008
    Assignee: Microsoft Corporation
    Inventors: Michael Alan Dougherty, David Scott McCoy, Michael Sean Mounier