Patents by Inventor XinLiang David Li

XinLiang David Li 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).

  • Publication number: 20230244458
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: April 11, 2023
    Publication date: August 3, 2023
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Patent number: 11675574
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Grant
    Filed: March 17, 2022
    Date of Patent: June 13, 2023
    Assignee: Google LLC
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Publication number: 20220206769
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: March 17, 2022
    Publication date: June 30, 2022
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Patent number: 11321061
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Grant
    Filed: July 29, 2019
    Date of Patent: May 3, 2022
    Assignee: Google LLC
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Publication number: 20200019390
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: July 29, 2019
    Publication date: January 16, 2020
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Patent number: 10365903
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Grant
    Filed: September 11, 2017
    Date of Patent: July 30, 2019
    Assignee: Google LLC
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Publication number: 20180107464
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: September 11, 2017
    Publication date: April 19, 2018
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Patent number: 9841959
    Abstract: Provided are methods and systems for inter-procedural optimization (IPO). A new IPO architecture (referred to as “ThinLTO”) is designed to address the weaknesses and limitations of existing IPO approaches, such as traditional Link Time Optimization (LTO) and Lightweight Inter-Procedural Optimization (LIPO), and become a new link-time-optimization standard. With ThinLTO, demand-driven and summary-based fine grain importing maximizes the potential of Cross-Module Optimization (CMO), which enables as much useful CMO as possible ThinLTO also provides for global indexing, which enables fast function importing; parallelizes some performance-critical but expensive inter-procedural analyses and transformations; utilizes demand-driven, lazy importing of debug information that minimizes memory consumption for the debug build; and allows easy integration of third-party distributed build systems. In addition, ThinLTO may also be implemented using an IPO server, thereby removing the need for the serial step.
    Type: Grant
    Filed: February 27, 2015
    Date of Patent: December 12, 2017
    Assignee: Google LLC
    Inventors: Xinliang David Li, Teresa Louise Johnson, Rong Xu
  • Patent number: 9760351
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Grant
    Filed: April 2, 2013
    Date of Patent: September 12, 2017
    Assignee: Google Inc.
    Inventors: Teresa Louise Johnson, Xinliang David Li
  • Publication number: 20160274878
    Abstract: Provided are methods and systems for removing Procedure Linkage Table (PLT) stubs from dynamically linked binaries. The methods and systems are designed to replace a call to an external function such that a global offset table entry is created for the function that will contain the address of the function and will be early bound. The call-site for the external function then performs one indirect call to the function using the global offset table entry containing the address of the external function.
    Type: Application
    Filed: March 19, 2015
    Publication date: September 22, 2016
    Applicant: GOOGLE INC.
    Inventors: Sriraman TALLAM, Xinliang David LI
  • Publication number: 20160224324
    Abstract: Provided are methods and systems for inter-procedural optimization (IPO). A new IPO architecture (referred to as “ThinLTO”) is designed to address the weaknesses and limitations of existing IPO approaches, such as traditional Link Time Optimization (LTO) and Lightweight Inter-Procedural Optimization (LIPO), and become a new link-time-optimization standard. With ThinLTO, demand-driven and summary-based fine grain importing maximizes the potential of Cross-Module Optimization (CMO), which enables as much useful CMO as possible ThinLTO also provides for global indexing, which enables fast function importing; parallelizes some performance-critical but expensive inter-procedural analyses and transformations; utilizes demand-driven, lazy importing of debug information that minimizes memory consumption for the debug build; and allows easy integration of third-party distributed build systems. In addition, ThinLTO may also be implemented using an IPO server, thereby removing the need for the serial step.
    Type: Application
    Filed: February 27, 2015
    Publication date: August 4, 2016
    Applicant: GOOGLE INC.
    Inventors: Xinliang David LI, Teresa Louise JOHNSON, Rong XU
  • Patent number: 9348566
    Abstract: A system and method for improving the performance of all applications are disclosed. Production profile data may be collected about each application while the application is executing. The production profile data may be converted into symbolized profiles and stored in a database. The symbolized profiles may be aggregated into a single aggregated profile. This aggregated profile may be used as a compilation input when compiling new versions of an application's binary to improve the application's performance for observed application behavior.
    Type: Grant
    Filed: January 2, 2014
    Date of Patent: May 24, 2016
    Assignee: GOOGLE INC.
    Inventors: Tipp Moseley, Dehao Chen, Xinliang David Li
  • Patent number: 9213531
    Abstract: Methods for reducing memory loads for accessing global variables (globals) when creating executables for position independent (PI) code are disclosed. A first method includes compiling PI code, identifying globals, and determining whether globals are defined in the executable. If a global is not defined in the executable, a definition is created in the executable. A second method includes receiving a list of defined globals from instrumented PI code binary and comparing the list with globals in the PI code. Memory loads are created for globals that are unlisted. A third method includes compiling PI code with special relocations for globals and determining whether globals are defined in the executable. If the global is defined in the executable, the special relocation is replaced with a direct load of the global. If not, the special relocation is replaced with a two-instruction sequence that loads the global's address and then the global's value.
    Type: Grant
    Filed: May 1, 2014
    Date of Patent: December 15, 2015
    Assignee: GOOGLE INC.
    Inventors: Sriraman Tallam, Xinliang David Li
  • Publication number: 20150317139
    Abstract: Methods for reducing memory loads for accessing global variables (globals) when creating executables for position independent (PI) code are disclosed. A first method includes compiling PI code, identifying globals, and determining whether globals are defined in the executable. If a global is not defined in the executable, a definition is created in the executable. A second method includes receiving a list of defined globals from instrumented PI code binary and comparing the list with globals in the PI code. Memory loads are created for globals that are unlisted. A third method includes compiling PI code with special relocations for globals and determining whether globals are defined in the executable. If the global is defined in the executable, the special relocation is replaced with a direct load of the global. If not, the special relocation is replaced with a two-instruction sequence that loads the global's address and then the global's value.
    Type: Application
    Filed: May 1, 2014
    Publication date: November 5, 2015
    Applicant: Google Inc.
    Inventors: Sriraman TALLAM, Xinliang David LI
  • Patent number: 9081587
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving source code that contains a hot function that calls a multiversioned function, where a function definition of the multiversioned function specifies a first version and an alternative second version, and generating compiled code that includes a first and a second clone of the hot function, and a first and a second version of the multiversioned function. In the compiled code, the first clone of the hot function includes a direct call to the first version of the multiversioned function, and the second clone of the hot function includes a direct call to the second version of the multiversioned function.
    Type: Grant
    Filed: February 25, 2013
    Date of Patent: July 14, 2015
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Sriraman Tallam
  • Patent number: 9009691
    Abstract: A system and method for using inline stacks to improve the performance of application binaries is included. While executing a first application binary, profile data may be collected about the application that includes which callee functions are called from the application's callsites and the number of times each inline stack is executed. A context summary map may be created from the collected profile data which shows a summary of the total execution count of all instructions in the callee function for each callsite inlined in the application's normal binary. Using the context summary map, each function callsite's execution count may be compared with a predetermined threshold to determine if the function should be inlined. Then the application's profile may be annotated and a second application binary, an optimized binary, may be generated using the annotated profile.
    Type: Grant
    Filed: July 12, 2013
    Date of Patent: April 14, 2015
    Assignee: Google Inc.
    Inventors: Dehao Chen, Xinliang David Li
  • Publication number: 20140298307
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: April 2, 2013
    Publication date: October 2, 2014
    Applicant: GOOGLE INC.
    Inventors: Teresa Louise JOHNSON, Xinliang David LI
  • Patent number: 8806463
    Abstract: A method includes generating a first executable program module based on source code modules and collecting profile information for the source code modules by executing the first executable program module. The profile information includes information pertaining to invocation of procedures in the first executable program module. The method further includes determining module grouping information for the source code modules based on procedure invocation patterns in the profile information and according to one or more inter-procedural optimization (IPO) heuristics. The method includes performing IPO based on the module grouping information to generate object code modules and generating a second executable program module based on the plurality of object code modules.
    Type: Grant
    Filed: May 12, 2014
    Date of Patent: August 12, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8789032
    Abstract: Methods, systems, and apparatus, including computer program products, for inter-procedural optimization, are disclosed. In one aspect, a first executable program module is generated based on a plurality of source code modules. Profile information is collected for the plurality of source code modules by executing the first executable program module. Inter-procedural analysis for the plurality of source code modules is performed during execution of the first executable program module. The inter-procedural analysis is based on the collected profile information. IPO is performed based on the results from the inter-procedural analysis to generate a plurality of object code modules. A second executable program module is generated based on the plurality of object code modules.
    Type: Grant
    Filed: February 27, 2009
    Date of Patent: July 22, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8745741
    Abstract: A system and method is disclosed for providing security in virtual function calling. During a build process a program code is analyzed to identify one or more call sites used to facilitate a call to a subroutine associated with a declared object type. One or more trusted vtable pointers to a respective subroutine is determined, and the program is configured, via the build process, to detect, at an execution time, an initiation of a virtual call at a call site, verify whether a vtable pointer used in connection with the call site is associated with at least one of the trusted vtable pointers, and, if verified, facilitate the virtual call using the call site. If the vtable pointer cannot be verified then the virtual call is aborted.
    Type: Grant
    Filed: August 31, 2012
    Date of Patent: June 3, 2014
    Assignee: Google Inc.
    Inventors: Caroline Tice, Geoffrey Roeder Pike, Úlfar Erlingsson, Lawrence Alan Crowl, Cary Allen Coutant, Xinliang David Li, Sriraman Tallam, Kenneth Buchanan