Patents by Inventor Ankit Asthana

Ankit Asthana 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: 10540262
    Abstract: A software development system is described that enables a user that is debugging source code to select for unoptimizing a function within the source code and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the selected function is unoptimized, while other functions remain optimized. Embodiments also enable a user to select a previously unoptimized function within the source code for re-optimizing and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the function is re-optimized. Still further embodiments enable a user to select within source code that is being developed a function for which optimization should be prevented and to cause a compiled representation of the source code to be built in which the selected function is unoptimized, while other functions are optimized.
    Type: Grant
    Filed: October 17, 2016
    Date of Patent: January 21, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ramkumar Ramesh, Changqing Fu, Ankit Asthana, Andrew B. Hall
  • Patent number: 10409574
    Abstract: 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: Grant
    Filed: July 13, 2016
    Date of Patent: September 10, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
  • Patent number: 10261889
    Abstract: 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: Grant
    Filed: June 25, 2014
    Date of Patent: April 16, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ankit Asthana, Ayman Baligh Shoukry, Ten H. Tzen, Changqing (Charles) Fu, Patrick W. Sathyanathan
  • Patent number: 9965271
    Abstract: Methods, systems, apparatuses, and computer program products are described that enable local builds to be substantially equivalent with remote builds. In embodiments, local build and design-time inputs and/or outputs of a local build environment hosted on a local computing device are projected to remote build and design-time inputs and/or outputs of a remote build environment hosted on a remote computing device. In further embodiments, remote build and design-time inputs and/or outputs of the remote build environment are projected to local build and design time inputs and/or outputs of the local build environment. In still further embodiments, first build and design-time inputs and/or outputs of a first build environment hosted on a computing device are projected to second build and design-time inputs and/or outputs of a second build environment hosted on the same computing device.
    Type: Grant
    Filed: July 17, 2015
    Date of Patent: May 8, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Bogdan I. Mihalcea, Ankit Asthana, Marian Luparu, Olga Arkhipova, Ion Todirel
  • Publication number: 20180107585
    Abstract: A software development system is described that enables a user that is debugging source code to select for unoptimizing a function within the source code and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the selected function is unoptimized, while other functions remain optimized. Embodiments also enable a user to select a previously unoptimized function within the source code for re-optimizing and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the function is re-optimized. Still further embodiments enable a user to select within source code that is being developed a function for which optimization should be prevented and to cause a compiled representation of the source code to be built in which the selected function is unoptimized, while other functions are optimized.
    Type: Application
    Filed: October 17, 2016
    Publication date: April 19, 2018
    Inventors: Ramkumar Ramesh, Changqing Fu, Ankit Asthana, Andrew B. Hall
  • Publication number: 20170286064
    Abstract: Methods, systems, apparatuses, and computer program products are described that enable local builds to be substantially equivalent with remote builds. In embodiments, local build and design-time inputs and/or outputs of a local build environment hosted on a local computing device are projected to remote build and design-time inputs and/or outputs of a remote build environment hosted on a remote computing device. In further embodiments, remote build and design-time inputs and/or outputs of the remote build environment are projected to local build and design time inputs and/or outputs of the local build environment. In still further embodiments, first build and design-time inputs and/or outputs of a first build environment hosted on a computing device are projected to second build and design-time inputs and/or outputs of a second build environment hosted on the same computing device.
    Type: Application
    Filed: June 23, 2017
    Publication date: October 5, 2017
    Inventors: Bogdan I. Mihalcea, Ankit Asthana, Marian Luparu, Olga Arkhipova, Ion Todirel
  • Publication number: 20170031666
    Abstract: 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: Application
    Filed: July 13, 2016
    Publication date: February 2, 2017
    Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
  • Publication number: 20160321055
    Abstract: Methods, systems, apparatuses, and computer program products are provided for enabling local builds to be substantially equivalent with remote builds. Build input information is mapped from a file system at a local computing device to a file system at a remote computing device. This enables a build to be performed at the remote computing device based on files/folders of the remote file system. Build output information is mapped from the file system of the remote computing device to the file system of the local computing device. This enables the build output information to be analyzed at the local computing device with respect to files/folders of the local file system.
    Type: Application
    Filed: June 24, 2015
    Publication date: November 3, 2016
    Inventors: Bogdan Ionut Mihalcea, Ankit Asthana, Marian Luparu, Olga Arkhipova, Ion Todirel
  • Publication number: 20160321033
    Abstract: Methods, systems, apparatuses, and computer program products are described that enable local builds to be substantially equivalent with remote builds. In embodiments, local build and design-time inputs and/or outputs of a local build environment hosted on a local computing device are projected to remote build and design-time inputs and/or outputs of a remote build environment hosted on a remote computing device. In further embodiments, remote build and design-time inputs and/or outputs of the remote build environment are projected to local build and design time inputs and/or outputs of the local build environment. In still further embodiments, first build and design-time inputs and/or outputs of a first build environment hosted on a computing device are projected to second build and design-time inputs and/or outputs of a second build environment hosted on the same computing device.
    Type: Application
    Filed: July 17, 2015
    Publication date: November 3, 2016
    Inventors: Bogdan I. Mihalcea, Ankit Asthana, Marian Luparu, Olga Arkhipova, Ion Todirel
  • Patent number: 9442707
    Abstract: 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: Grant
    Filed: June 25, 2014
    Date of Patent: September 13, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
  • 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: 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: 20150378697
    Abstract: 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: Application
    Filed: June 25, 2014
    Publication date: December 31, 2015
    Inventors: Patrick W. Sathyanathan, Ten H. Tzen, Wenlei He, Ankit Asthana, Adrian Militaru
  • Publication number: 20150378871
    Abstract: 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: Application
    Filed: June 25, 2014
    Publication date: December 31, 2015
    Inventors: Ankit Asthana, Ayman Baligh Shoukry, Ten H. Tzen, Changqing (Charles) Fu, Patrick W. Sathyanathan