Patents by Inventor Terry Jack Mahaffey

Terry Jack Mahaffey 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: 10353679
    Abstract: A PGO compiler can instrument an executable to collect profile data from which global variables that were modified during the execution of a training executable can be identified. PGO optimization using a list of modified global variables identified from the profile data can be used to optimize a program in a second compilation phase. The global variables that were modified during the training run are identified by capturing a current snapshot of global variables and comparing their state to a baseline snapshot to ascertain the addresses of global variables that were modified. The addresses that changed can be mapped to global variable names to create a list of global variables that were modified during execution of the training executable. The list of global variables that have been modified can be to enable the compiler to perform optimizations such as but not limited to co-locate the modified global variables in memory.
    Type: Grant
    Filed: October 31, 2014
    Date of Patent: July 16, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventor: Terry Jack Mahaffey
  • Patent number: 10241763
    Abstract: Intra-procedural and inter-procedural dynamic type propagation can be used to optimize code by devirtualizing virtual functions. In the intra-procedural pass each function in the program is inspected. If the dynamic type of a variable within the function is determined, the static type is replaced by the dynamic type. If the dynamic type of a variable within the function is not determinable, a placeholder type is inserted. After each function and each statement in the function and each statement outside of the function is examined, an attempt is made to resolve all of the placeholder types references created in the first pass, replacing the placeholder type with the dynamic type. This process is iterated until additional dynamic type determination ends.
    Type: Grant
    Filed: December 10, 2014
    Date of Patent: March 26, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventor: Terry Jack Mahaffey
  • Patent number: 10175965
    Abstract: Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.
    Type: Grant
    Filed: February 20, 2017
    Date of Patent: January 8, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph
  • Publication number: 20170300308
    Abstract: Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.
    Type: Application
    Filed: February 20, 2017
    Publication date: October 19, 2017
    Inventors: TERRY JACK MAHAFFEY, TEN H. TZEN, PRATAP CHANDAR JOSEPH
  • Patent number: 9612809
    Abstract: Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.
    Type: Grant
    Filed: May 30, 2014
    Date of Patent: April 4, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph
  • Publication number: 20160170724
    Abstract: Intra-procedural and inter-procedural dynamic type propagation can be used to optimize code by devirtualizing virtual functions. In the intra-procedural pass each function in the program is inspected. If the dynamic type of a variable within the function is determined, the static type is replaced by the dynamic type . If the dynamic type of a variable within the function is not determinable, a placeholder type is inserted. After each function and each statement in the function and each statement outside of the function is examined, an attempt is made to resolve all of the placeholder types references created in the first pass, replacing the placeholder type with the dynamic type. This process is iterated until additional dynamic type determination ends.
    Type: Application
    Filed: December 10, 2014
    Publication date: June 16, 2016
    Inventor: Terry Jack Mahaffey
  • Patent number: 9348567
    Abstract: Profile guided optimization (PGO) in the presence of stale profile data as described herein can be based on path profiling, whereby different paths through a program's call graph are uniquely identified. Stale profile data is data collected in a training run of a previous version of the program. Profile data can be collected along these paths and optimization decisions can be made using the collected data. The paths can be numbered using an algorithm that assigns path increments to all the callees of a function. The path increment assignments (which can be stored in the profile database) can be used to locate the profile data for that path and to make corresponding optimization decisions. PGO optimizations along call graph paths involving edited functions can be performed.
    Type: Grant
    Filed: July 3, 2014
    Date of Patent: May 24, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Shishir Sharma, Ankit Asthana, Terry Jack Mahaffey, Ten H. Tzen
  • Publication number: 20160124728
    Abstract: A PGO compiler can instrument an executable to collect profile data from which global variables that were modified during the execution of a training executable can be identified. PGO optimization using a list of modified global variables identified from the profile data can be used to optimize a program in a second compilation phase. The global variables that were modified during the training run are identified by capturing a current snapshot of global variables and comparing their state to a baseline snapshot to ascertain the addresses of global variables that were modified. The addresses that changed can be mapped to global variable names to create a list of global variables that were modified during execution of the training executable. The list of global variables that have been modified can be to enable the compiler to perform optimizations such as but not limited to co-locate the modified global variables in memory.
    Type: Application
    Filed: October 31, 2014
    Publication date: May 5, 2016
    Inventor: Terry Jack Mahaffey
  • Publication number: 20160004518
    Abstract: Profile guided optimization (PGO) in the presence of stale profile data as described herein can be based on path profiling, whereby different paths through a program's call graph are uniquely identified. Stale profile data is data collected in a training run of a previous version of the program. Profile data can be collected along these paths and optimization decisions can be made using the collected data. The paths can be numbered using an algorithm that assigns path increments to all the callees of a function. The path increment assignments (which can be stored in the profile database) can be used to locate the profile data for that path and to make corresponding optimization decisions. PGO optimizations along call graph paths involving edited functions can be performed.
    Type: Application
    Filed: July 3, 2014
    Publication date: January 7, 2016
    Inventors: Shishir Sharma, Ankit Asthana, Terry Jack Mahaffey, Ten H. Tzen
  • Publication number: 20150347103
    Abstract: Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Applicant: Microsoft Corporation
    Inventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph