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: 20230244458Abstract: 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: ApplicationFiled: April 11, 2023Publication date: August 3, 2023Inventors: Teresa Louise Johnson, Xinliang David Li
-
Patent number: 11675574Abstract: 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: GrantFiled: March 17, 2022Date of Patent: June 13, 2023Assignee: Google LLCInventors: Teresa Louise Johnson, Xinliang David Li
-
Publication number: 20220206769Abstract: 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: ApplicationFiled: March 17, 2022Publication date: June 30, 2022Inventors: Teresa Louise Johnson, Xinliang David Li
-
Patent number: 11321061Abstract: 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: GrantFiled: July 29, 2019Date of Patent: May 3, 2022Assignee: Google LLCInventors: Teresa Louise Johnson, Xinliang David Li
-
Publication number: 20200019390Abstract: 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: ApplicationFiled: July 29, 2019Publication date: January 16, 2020Inventors: Teresa Louise Johnson, Xinliang David Li
-
Patent number: 10365903Abstract: 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: GrantFiled: September 11, 2017Date of Patent: July 30, 2019Assignee: Google LLCInventors: Teresa Louise Johnson, Xinliang David Li
-
Publication number: 20180107464Abstract: 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: ApplicationFiled: September 11, 2017Publication date: April 19, 2018Inventors: Teresa Louise Johnson, Xinliang David Li
-
Patent number: 9841959Abstract: 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: GrantFiled: February 27, 2015Date of Patent: December 12, 2017Assignee: Google LLCInventors: Xinliang David Li, Teresa Louise Johnson, Rong Xu
-
Patent number: 9760351Abstract: 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: GrantFiled: April 2, 2013Date of Patent: September 12, 2017Assignee: Google Inc.Inventors: Teresa Louise Johnson, Xinliang David Li
-
Publication number: 20160274878Abstract: 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: ApplicationFiled: March 19, 2015Publication date: September 22, 2016Applicant: GOOGLE INC.Inventors: Sriraman TALLAM, Xinliang David LI
-
Publication number: 20160224324Abstract: 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: ApplicationFiled: February 27, 2015Publication date: August 4, 2016Applicant: GOOGLE INC.Inventors: Xinliang David LI, Teresa Louise JOHNSON, Rong XU
-
Patent number: 9348566Abstract: 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: GrantFiled: January 2, 2014Date of Patent: May 24, 2016Assignee: GOOGLE INC.Inventors: Tipp Moseley, Dehao Chen, Xinliang David Li
-
Patent number: 9213531Abstract: 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: GrantFiled: May 1, 2014Date of Patent: December 15, 2015Assignee: GOOGLE INC.Inventors: Sriraman Tallam, Xinliang David Li
-
Publication number: 20150317139Abstract: 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: ApplicationFiled: May 1, 2014Publication date: November 5, 2015Applicant: Google Inc.Inventors: Sriraman TALLAM, Xinliang David LI
-
Patent number: 9081587Abstract: 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: GrantFiled: February 25, 2013Date of Patent: July 14, 2015Assignee: Google Inc.Inventors: Xinliang David Li, Sriraman Tallam
-
Patent number: 9009691Abstract: 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: GrantFiled: July 12, 2013Date of Patent: April 14, 2015Assignee: Google Inc.Inventors: Dehao Chen, Xinliang David Li
-
Publication number: 20140298307Abstract: 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: ApplicationFiled: April 2, 2013Publication date: October 2, 2014Applicant: GOOGLE INC.Inventors: Teresa Louise JOHNSON, Xinliang David LI
-
Patent number: 8806463Abstract: 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: GrantFiled: May 12, 2014Date of Patent: August 12, 2014Assignee: Google Inc.Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
-
Patent number: 8789032Abstract: 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: GrantFiled: February 27, 2009Date of Patent: July 22, 2014Assignee: Google Inc.Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
-
Patent number: 8745741Abstract: 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: GrantFiled: August 31, 2012Date of Patent: June 3, 2014Assignee: Google Inc.Inventors: Caroline Tice, Geoffrey Roeder Pike, Úlfar Erlingsson, Lawrence Alan Crowl, Cary Allen Coutant, Xinliang David Li, Sriraman Tallam, Kenneth Buchanan