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: 10353679Abstract: 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: GrantFiled: October 31, 2014Date of Patent: July 16, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventor: Terry Jack Mahaffey
-
Patent number: 10241763Abstract: 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: GrantFiled: December 10, 2014Date of Patent: March 26, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventor: Terry Jack Mahaffey
-
Patent number: 10175965Abstract: 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: GrantFiled: February 20, 2017Date of Patent: January 8, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph
-
Publication number: 20170300308Abstract: 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: ApplicationFiled: February 20, 2017Publication date: October 19, 2017Inventors: TERRY JACK MAHAFFEY, TEN H. TZEN, PRATAP CHANDAR JOSEPH
-
Patent number: 9612809Abstract: 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: GrantFiled: May 30, 2014Date of Patent: April 4, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph
-
Publication number: 20160170724Abstract: 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: ApplicationFiled: December 10, 2014Publication date: June 16, 2016Inventor: Terry Jack Mahaffey
-
Patent number: 9348567Abstract: 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: GrantFiled: July 3, 2014Date of Patent: May 24, 2016Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Shishir Sharma, Ankit Asthana, Terry Jack Mahaffey, Ten H. Tzen
-
Publication number: 20160124728Abstract: 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: ApplicationFiled: October 31, 2014Publication date: May 5, 2016Inventor: Terry Jack Mahaffey
-
Publication number: 20160004518Abstract: 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: ApplicationFiled: July 3, 2014Publication date: January 7, 2016Inventors: Shishir Sharma, Ankit Asthana, Terry Jack Mahaffey, Ten H. Tzen
-
Publication number: 20150347103Abstract: 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: ApplicationFiled: May 30, 2014Publication date: December 3, 2015Applicant: Microsoft CorporationInventors: Terry Jack Mahaffey, Ten H. Tzen, Pratap Chandar Joseph