Patents by Inventor Patrick W. Sathyanathan
Patrick W. Sathyanathan 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: 10409574Abstract: Methods, systems, and computer program products are provided that enable incremental compilation of source code. Attributes of an intermediate language (IL) representation and a compiled representation of a source code are stored. Modified source code that is a revised version of the first source code is received. An IL representation of the modified source code is generated. Attributes of the revised intermediate IL and the stored attributes of the IL representation are compared to determine a first set of functions changed in the modified source code. A second set of functions in the first source code is determined that includes functions affected the determined first set of functions. The first and second sets of functions are compiled to generate a set of compiled functions. Compiled versions of the first and second sets are replaced in the compiled representation of the first source code with the set of compiled functions.Type: GrantFiled: July 13, 2016Date of Patent: September 10, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
-
Patent number: 10261889Abstract: Methods, systems, and computer program products are provided that enable a portion of code to be marked in source code to disable compilation optimizations for the marked portion of code, while the rest of the source code is compiled with optimizations. In this manner, edit-and-continue debugging may be performed on the compiled source code in an enhanced manner. Modifications made to the marked source code (as well as the rest of the source code) may be compiled in an incremental manner, such that the portions of the source code affected by the modifications are compiled, while unaffected portions of the source code are not recompiled.Type: GrantFiled: June 25, 2014Date of Patent: April 16, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Ankit Asthana, Ayman Baligh Shoukry, Ten H. Tzen, Changqing (Charles) Fu, Patrick W. Sathyanathan
-
Patent number: 9817643Abstract: Instead of performing local dataflow analyses on all procedures during a multi-file optimized code generation, those dataflow analyses are done only on a generally much smaller set of procedures that were actually impacted by source code edits. Incremental inter-procedural dataflow analysis (IIPDA) code identifies a set of procedures to be recompiled due to impact from one or more edits and does local dataflow analyses only on them. Results of the incremental approach for use in generating optimized code match the results of a more expensive exhaustive interprocedural dataflow analysis of all procedures, even when call graph structure has been changed by the edits. The impacted procedures are identified based on which procedures were edited, dataflow values, intermediate language representations, and a portion of the call graph.Type: GrantFiled: July 24, 2015Date of Patent: November 14, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Wenlei He, Patrick W. Sathyanathan, Ten H. Tzen
-
Publication number: 20170031666Abstract: Methods, systems, and computer program products are provided that enable incremental compilation of source code. Attributes of an intermediate language (IL) representation and a compiled representation of a source code are stored. Modified source code that is a revised version of the first source code is received. An IL representation of the modified source code is generated. Attributes of the revised intermediate IL and the stored attributes of the IL representation are compared to determine a first set of functions changed in the modified source code. A second set of functions in the first source code is determined that includes functions affected the determined first set of functions. The first and second sets of functions are compiled to generate a set of compiled functions. Compiled versions of the first and second sets are replaced in the compiled representation of the first source code with the set of compiled functions.Type: ApplicationFiled: July 13, 2016Publication date: February 2, 2017Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
-
Publication number: 20170017472Abstract: Instead of performing local dataflow analyses on all procedures during a multi-file optimized code generation, those dataflow analyses are done only on a generally much smaller set of procedures that were actually impacted by source code edits. Incremental inter-procedural dataflow analysis (IIPDA) code identifies a set of procedures to be recompiled due to impact from one or more edits and does local dataflow analyses only on them. Results of the incremental approach for use in generating optimized code match the results of a more expensive exhaustive interprocedural dataflow analysis of all procedures, even when call graph structure has been changed by the edits. The impacted procedures are identified based on which procedures were edited, dataflow values, intermediate language representations, and a portion of the call graph.Type: ApplicationFiled: July 24, 2015Publication date: January 19, 2017Inventors: Wenlei HE, Patrick W. SATHYANATHAN, Ten H. TZEN
-
Patent number: 9442707Abstract: Methods, systems, and computer program products are provided that enable incremental compilation of source code. Attributes of an intermediate language (IL) representation and a compiled representation of a source code are stored. Modified source code that is a revised version of the first source code is received. An IL representation of the modified source code is generated. Attributes of the revised intermediate IL and the stored attributes of the IL representation are compared to determine a first set of functions changed in the modified source code. A second set of functions in the first source code is determined that includes functions affected the determined first set of functions. The first and second sets of functions are compiled to generate a set of compiled functions. Compiled versions of the first and second sets are replaced in the compiled representation of the first source code with the set of compiled functions.Type: GrantFiled: June 25, 2014Date of Patent: September 13, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
-
Publication number: 20150378697Abstract: Methods, systems, and computer program products are provided that enable incremental compilation of source code. Attributes of an intermediate language (IL) representation and a compiled representation of a source code are stored. Modified source code that is a revised version of the first source code is received. An IL representation of the modified source code is generated. Attributes of the revised intermediate IL and the stored attributes of the IL representation are compared to determine a first set of functions changed in the modified source code. A second set of functions in the first source code is determined that includes functions affected the determined first set of functions. The first and second sets of functions are compiled to generate a set of compiled functions. Compiled versions of the first and second sets are replaced in the compiled representation of the first source code with the set of compiled functions.Type: ApplicationFiled: June 25, 2014Publication date: December 31, 2015Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
-
Publication number: 20150378871Abstract: Methods, systems, and computer program products are provided that enable a portion of code to be marked in source code to disable compilation optimizations for the marked portion of code, while the rest of the source code is compiled with optimizations. In this manner, edit-and-continue debugging may be performed on the compiled source code in an enhanced manner. Modifications made to the marked source code (as well as the rest of the source code) may be compiled in an incremental manner, such that the portions of the source code affected by the modifications are compiled, while unaffected portions of the source code are not recompiled.Type: ApplicationFiled: June 25, 2014Publication date: December 31, 2015Inventors: Ankit Asthana, Ayman Baligh Shoukry, Ten H. Tzen, Changqing (Charles) Fu, Patrick W. Sathyanathan
-
Patent number: 8966463Abstract: A computer-implemented method for removing redundant function calls in a computer program includes identifying a first set of equivalent function calls appearing in the computer program. For each of the equivalent function calls, the method identifies whether the function call is partially available or partially anticipable. When a function call is identified as being partially anticipable, a result of the function call is stored in a temporary variable. When a function call is identified as being partially available, the function call is removed and replaced with use of the temporary variable.Type: GrantFiled: November 29, 2011Date of Patent: February 24, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Patrick W. Sathyanathan, Ten Tzen
-
Patent number: 8572594Abstract: The automated identification of open types of a multi-function input program. The automated identification of open types is performed without annotations in the input program, but rather by identifying a set of invading types of the program, with each of the invading types being an open type. The identification of invading types may be performed iteratively until the set of invading types no longer grows. The set of open types may be used for any purpose such as perhaps the de-virtualization of an input program during compilation.Type: GrantFiled: December 22, 2010Date of Patent: October 29, 2013Assignee: Microsoft CorporationInventors: Patrick W. Sathyanathan, Ten H. Tzen
-
Publication number: 20130139136Abstract: A computer-implemented method for removing redundant function calls in a computer program includes identifying a first set of equivalent function calls appearing in the computer program. For each of the equivalent function calls, the method identifies whether the function call is partially available or partially anticipable. When a function call is identified as being partially anticipable, a result of the function call is stored in a temporary variable. When a function call is identified as being partially available, the function call is removed and replaced with use of the temporary variable.Type: ApplicationFiled: November 29, 2011Publication date: May 30, 2013Applicant: Microsoft CorporationInventors: Patrick W. Sathyanathan, Ten Tzen
-
Publication number: 20120167091Abstract: The automated identification of open types of a multi-function input program. The automated identification of open types is performed without annotations in the input program, but rather by identifying a set of invading types of the program, with each of the invading types being an open type. The identification of invading types may be performed iteratively until the set of invading types no longer grows. The set of open types may be used for any purpose such as perhaps the de-virtualization of an input program during compilation.Type: ApplicationFiled: December 22, 2010Publication date: June 28, 2012Applicant: MICROSOFT CORPORATIONInventors: Patrick W. Sathyanathan, Ten H. Tzen