会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 6. 发明授权
    • Feedback-directed inter-procedural optimization
    • 反馈导向的过程间优化
    • US08806463B1
    • 2014-08-12
    • US14275338
    • 2014-05-12
    • Google Inc.
    • Xinliang David LiRaksit AshokRobert Hundt
    • G06F9/45G06F9/44
    • G06F8/30G06F8/443G06F8/4443
    • 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.
    • 一种方法包括:通过执行第一可执行程序模块,基于源代码模块生成第一可执行程序模块并收集源代码模块的简档信息。 简档信息包括关于调用第一可执行程序模块中的过程的信息。 该方法还包括基于简档信息中的过程调用模式并根据一个或多个过程间优化(IPO)启发式来确定源代码模块的模块分组信息。 该方法包括基于模块分组信息执行IPO以生成目标代码模块,并且基于多个目标代码模块生成第二可执行程序模块。
    • 7. 发明授权
    • Methods to eliminate extra memory loads while accessing global variables in position independent code
    • 消除额外的内存负载同时访问位置无关代码的全局变量的方法
    • US09213531B2
    • 2015-12-15
    • US14267705
    • 2014-05-01
    • Google Inc.
    • Sriraman TallamXinliang David Li
    • G06F9/44G06F9/45
    • G06F8/4434G06F8/4441G06F8/447
    • 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.
    • 披露了在创建位置无关(PI)代码的可执行文件时减少用于访问全局变量(全局变量)的内存负载的方法。 第一种方法包括编译PI代码,识别全局变量,并确定是否在可执行文件中定义全局变量。 如果在可执行文件中未定义全局,则在可执行文件中创建一个定义。 第二种方法包括从仪器化PI代码二进制中接收定义的全局变量列表,并将该列表与PI代码中的全局变量进行比较。 为未列出的全局变量创建内存加载。 第三种方法包括使用全局变量的特殊重新定位来编译PI代码,并确定是否在可执行文件中定义全局变量。 如果在可执行文件中定义了全局,那么特殊重定位将被替换为全局的直接加载。 如果没有,则特殊重定位将替换为加载全局地址,然后加载全局值的双指令序列。
    • 8. 发明授权
    • Multiversioned functions
    • 多功能功能
    • US09081587B1
    • 2015-07-14
    • US13775984
    • 2013-02-25
    • GOOGLE INC.
    • Xinliang David LiSriraman Tallam
    • G06F9/45
    • G06F8/443G06F8/41G06F8/433G06F8/44G06F8/4441
    • 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.
    • 方法,系统和装置,包括在计算机存储介质上编码的计算机程序,用于接收包含调用多版本功能的热功能的源代码,其中多功能功能的功能定义指定第一版本和替代的第二版本, 以及生成包括热功能的第一和第二克隆的编译代码以及多版本功能的第一和第二版本。 在编译的代码中,热功能的第一个克隆包括直接调用多版本功能的第一个版本,热功能的第二个克隆包括直接调用多版本功能的第二个版本。
    • 9. 发明授权
    • Using an inline stack to improve performance of an applications binary
    • 使用内联堆栈来提高应用程序二进制文件的性能
    • US09009691B1
    • 2015-04-14
    • US13940987
    • 2013-07-12
    • Google Inc.
    • Dehao ChenXinliang David Li
    • G06F9/45
    • G06F8/4443
    • 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.
    • 包括使用内联堆栈来提高应用程序二进制文件性能的系统和方法。 在执行第一个应用程序二进制文件时,可以收集关于应用程序的简档数据,该应用程序包括从应用程序调用中调用哪个被调用程序函数以及执行每个内联栈的次数。 可以从收集的简档数据创建上下文摘要图,其中显示了应用程序正常二进制文中内联的每个调用现场的被调用者函数中所有指令的总执行次数的摘要。 使用上下文摘要图,可以将每个函数调用站点的执行计数与预定阈值进行比较,以确定函数是否应该被内联。 然后可以注释应用程序的配置文件,并且可以使用注释的配置文件生成第二个应用程序二进制文件,即优化的二进制文件。