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: 11210071Abstract: 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: GrantFiled: April 1, 2020Date of Patent: December 28, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Xiang Li, David McCarthy Peixotto, Michael Alan Dougherty
-
Patent number: 11200061Abstract: 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: GrantFiled: February 3, 2020Date of Patent: December 14, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Xiang Li, Michael Alan Dougherty, David McCarthy Peixotto
-
Publication number: 20210311708Abstract: 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: ApplicationFiled: April 1, 2020Publication date: October 7, 2021Inventors: Xiang LI, David McCarthy PEIXOTTO, Michael Alan DOUGHERTY
-
Publication number: 20210149673Abstract: 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: ApplicationFiled: February 3, 2020Publication date: May 20, 2021Applicant: Microsoft Technology Licensing, LLCInventors: Xiang LI, Michael Alan DOUGHERTY, David McCarthy PEIXOTTO
-
Patent number: 10949209Abstract: 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: GrantFiled: December 31, 2018Date of Patent: March 16, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Xiang Li, Michael Alan Dougherty, David McCarthy Peixotto
-
Publication number: 20200210194Abstract: 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: ApplicationFiled: December 31, 2018Publication date: July 2, 2020Inventors: Xiang LI, Michael Alan DOUGHERTY, David McCarthy PEIXOTTO
-
Patent number: 10593010Abstract: 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: GrantFiled: December 13, 2017Date of Patent: March 17, 2020Assignee: Microsoft Technology Licensing, LLCInventors: James Andrew Goossen, Michael Alan Dougherty, Cole James Brooking
-
Publication number: 20190180407Abstract: 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: ApplicationFiled: December 13, 2017Publication date: June 13, 2019Inventors: James Andrew GOOSSEN, Michael Alan DOUGHERTY, Cole James BROOKING
-
Patent number: 9135599Abstract: 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: GrantFiled: June 18, 2009Date of Patent: September 15, 2015Assignee: Microsoft Technology Licensing, LLCInventors: William J. Westerinen, J. Edward Allard, Julio Estrada, Michael Alan Dougherty
-
Publication number: 20100325559Abstract: 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: ApplicationFiled: June 18, 2009Publication date: December 23, 2010Inventors: William J. Westerinen, J. Edward Allard, Julio Estrada, Michael Alan Dougherty
-
Patent number: 7423645Abstract: 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: GrantFiled: June 1, 2005Date of Patent: September 9, 2008Assignee: Microsoft CorporationInventors: Michael Alan Dougherty, David Scott McCoy, Michael Sean Mounier