会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 22. 发明授权
    • Compiling system and method for optimizing binary code
    • 用于优化二进制代码的编译系统和方法
    • US08689198B2
    • 2014-04-01
    • US13206781
    • 2011-08-10
    • Motohiro KawahitoAli I. SheikhVijay Sundaresan
    • Motohiro KawahitoAli I. SheikhVijay Sundaresan
    • G06F9/45
    • G06F8/443
    • A compiling system and method for optimizing binary code. The method includes the step of replacing a memory access on a stack area in order to save a value of a register with local variable access. The method further includes: giving a call number to a call instruction and an inlined code in response to an inline expansion of a code to be called by the call instruction; creating a parent-child relationship information for at least one of the call number; processing the memory accesses with an escaped stack pointer as a base address if a stack pointer has escaped; prohibiting a replacement of a prohibited memory access if the stack pointer has escaped; and replacing unprohibited memory access with the local variable access if the stack pointer has escaped.
    • 一种用于优化二进制代码的编译系统和方法。 该方法包括在堆栈区域中替换存储器访问以便保存具有局部变量访问的寄存器的值的步骤。 该方法还包括:响应于由呼叫指令调用的代码的内联扩展,向呼叫指令和内联代码发出呼叫号码; 为所述呼叫号码中的至少一个创建父 - 子关系信息; 如果堆栈指针已经转义,则使用转义的堆栈指针作为基地址处理存储器访问; 如果堆栈指针已经转义,则禁止替换禁止的内存访问; 并且如果堆栈指针已经转义,则使用局部变量访问替换非禁止的内存访问。
    • 24. 发明申请
    • COMPILING SYSTEM AND METHOD FOR OPTIMIZING BINARY CODE
    • 用于优化二进制码的编译系统和方法
    • US20120042306A1
    • 2012-02-16
    • US13206781
    • 2011-08-10
    • Motohiro KawahitoAli I. SheikhVijay Sundaresan
    • Motohiro KawahitoAli I. SheikhVijay Sundaresan
    • G06F9/45
    • G06F8/443
    • A compiling system and method for optimizing binary code. The method includes the step of replacing a memory access on a stack area in order to save a value of a register with local variable access. The method further includes: giving a call number to a call instruction and an inlined code in response to an inline expansion of a code to be called by the call instruction; creating a parent-child relationship information for at least one of the call number; processing the memory accesses with an escaped stack pointer as a base address if a stack pointer has escaped; prohibiting a replacement of a prohibited memory access if the stack pointer has escaped; and replacing unprohibited memory access with the local variable access if the stack pointer has escaped.
    • 一种用于优化二进制代码的编译系统和方法。 该方法包括在堆栈区域中替换存储器访问以便保存具有局部变量访问的寄存器的值的步骤。 该方法还包括:响应于由呼叫指令调用的代码的内联扩展,向呼叫指令和内联代码发出呼叫号码; 为所述呼叫号码中的至少一个创建父 - 子关系信息; 如果堆栈指针已经转义,则使用转义的堆栈指针作为基地址处理存储器访问; 如果堆栈指针已经转义,则禁止替换禁止的内存访问; 并且如果堆栈指针已经转义,则使用局部变量访问替换非禁止的内存访问。
    • 25. 发明授权
    • Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment
    • 在多线程动态编译环境中有效执行精确剖析的方法
    • US07770163B2
    • 2010-08-03
    • US11388607
    • 2006-03-24
    • Kevin Alexander StoodleyVijay Sundaresan
    • Kevin Alexander StoodleyVijay Sundaresan
    • G06F9/44G06F9/45
    • G06F8/443
    • Synchronizing clones of a software method to be executed by at least one thread while the software method is compiled. The software method is cloned to generate a software method clone. At least one transition is created between equivalent program points in the software method and the software method clone. A lock object is inserted into one of the software method and the software method clone. Then, code that controls the at least one transition between a profiling clone and a non-profiling clone is changed to access thread-local storage. The non-profiling clone is the one of the software method and the software method clone into which the lock object was inserted. A first synchronization operation is performed at or after an entry point of the non-profiling clone. Then, the profiling clone is executed using thread-local storage.
    • 在软件方法被编译的同时,由至少一个线程执行的软件方法的克隆。 克隆软件方法以生成软件方法克隆。 在软件方法中的等效程序点和软件方法克隆之间至少创建一个转换。 将锁定对象插入到软件方法和软件方法克隆之一中。 然后,更改控制概要分析克隆和非概要分析克隆之间的至少一个转换的代码,以访问线程本地存储。 非分析克隆是插入锁定对象的软件方法和软件方法克隆之一。 在非分析克隆的入口点之前或之后执行第一同步操作。 然后,使用线程本地存储执行概要分析克隆。
    • 26. 发明授权
    • Versioning optimization for dynamically-typed languages
    • 动态类型语言的版本控制优化
    • US07493610B1
    • 2009-02-17
    • US12056726
    • 2008-03-27
    • Tamiya OnoderaVijay SundaresanMichiaki TatsuboriAkihiko Tozawa
    • Tamiya OnoderaVijay SundaresanMichiaki TatsuboriAkihiko Tozawa
    • G06F9/45G06F11/00
    • G06F8/49G06F9/4484
    • A system and method for optimizing program code in dynamic languages includes gathering hot-type information from a program by employing inferencing or profiling to get the hot-type information for operator uses, and inserting guards in the program based on data flow in the program to guard against propagation failures during runtime where preconditions are violated or where the propagation is unlikely to return. The program is versioned into global versions including a hot path version and a cold path version, where the hot path version is expected to be executed if the values of variables in the code are expected types, and other exceptional cases are handled by the cold path version as triggered by the guards. Compiler optimizations are performed to remove redundant representations of values, and heavy overloading of operators to provide an optimized compiling of the code.
    • 用于以动态语言优化程序代码的系统和方法包括通过采用推理或分析来从程序收集热类型信息以获得用于操作者使用的热型信息,并且基于程序中的数据流将程序中的保护装置插入到程序中 防止在违反前提条件的运行时间内传播失败或传播难以返回的传播故障。 该程序被版本化为全球版本,包括热路径版本和冷路径版本,其中如果代码中的变量的值是预期类型,则希望执行热路径版本,并且其他异常情况由冷路径处理 版本由警卫触发。 执行编译器优化以消除值的冗余表示,以及操作员的大量重载以提供代码的优化编译。
    • 28. 发明授权
    • Optimizing compiler performance by object collocation
    • 通过对象搭配优化编译器性能
    • US08826256B2
    • 2014-09-02
    • US12858001
    • 2010-08-17
    • Patrick DoylePramod RamaraoVijay Sundaresan
    • Patrick DoylePramod RamaraoVijay Sundaresan
    • G06F9/45
    • G06F8/443G06F8/4442
    • A computer-implemented method, system, and computer program product for performing object collocation on a computer system are provided. The method includes analyzing a sequence of computer instructions for object allocations and uses of the allocated objects. The method further includes creating an allocation interference graph of object allocation nodes with edges indicating pairs of allocations to be omitted from collocation. The method also includes coloring the allocation interference graph such that adjacent nodes are assigned different colors, and creating an object allocation at a program point prior to allocations of a selected color from the allocation interference graph. The method additionally includes storing an address associated with the created object allocation in a collocation pointer, and replacing a use of each allocation of the selected color with a use of the collocation pointer to collocate multiple objects.
    • 提供了一种用于在计算机系统上执行对象搭配的计算机实现的方法,系统和计算机程序产品。 该方法包括分析用于对象分配的计算机指令序列和所分配的对象的使用。 该方法还包括创建对象分配节点的分配干涉图,其边缘指示将从配置中省略的分配对。 该方法还包括着色分配干涉图,使得相邻节点被分配不同的颜色,并且在从分配干涉图分配所选择的颜色之前在程序点创建对象分配。 该方法还包括将与所创建的对象分配相关联的地址存储在并置指针中,并且通过使用并置指针来并置多个对象来替换所选颜色的每个分配的使用。
    • 29. 发明授权
    • Speculative inlining of overridden methods without using profiling information
    • 推测内联覆盖的方法,而不使用分析信息
    • US08024720B2
    • 2011-09-20
    • US11405093
    • 2006-04-17
    • Derek Bruce InglisVijay SundaresanDina Tal
    • Derek Bruce InglisVijay SundaresanDina Tal
    • G06F9/45
    • G06F8/443
    • A computer implemented method, computer usable program code, and a data processing system for selecting a candidate implementation of a virtual overridden method for inlining into a calling method. A determination as to which implementation of a virtual overridden method to inline is made based on its relative “hotness” compared to the other implementations of the same method. The relative hotness can be inferred from the invocation count and sampling count that the virtual machine and the just-in-time compiler already collect for other purposes, that is, without collecting and storing of call-edge profiling information. When a method is being compiled and it is identified that the method contains a call to an overridden method, a candidate for inlining from among the implementations of the overridden method is selected based on relative hotness values. The candidate implementation of the overridden method is then inlined, with a guard, into the calling method.
    • 计算机实现的方法,计算机可用程序代码和用于选择用于内联到调用方法的虚拟覆盖方法的候选实现的数据处理系统。 基于相对于相同方法的其他实现方式的相对“热度”来确定虚拟覆盖的内联方法的实现。 相对热度可以从虚拟机和即时编译器已经为其他目的收集的调用计数和抽样计数推断出来,即没有收集和存储调用边缘分析信息。 当编译方法并且识别出该方法包含对重写方法的调用时,基于相对热度值来选择从覆盖方法的实现中进行内联的候选。 然后,覆盖方法的候选实现被带入调用方法。
    • 30. 发明授权
    • Computer program optimization in a dynamic compilation environment
    • 动态编译环境中的计算机程序优化
    • US07661098B2
    • 2010-02-09
    • US10845548
    • 2004-05-13
    • Ali Ijaz SheikhVijay Sundaresan
    • Ali Ijaz SheikhVijay Sundaresan
    • G06F9/45
    • G06F9/45516G06F8/443
    • Dynamically compiled computer program code containing virtual calls can reduce the options for optimization during compilation. A virtual call can affect sections of the program code that are compiled subsequent to the virtual call. Therefore, the state under which the effected sections are to be executed may not be known at the time of compilation thus complicating optimization of these sections. If assumptions are made about the state of an effected section, then this section can be optimized. In order to provide proper operation of the executing program code given the optimization, a check of the validity of the assumptions is performed prior to execution of the optimized section. If an assumption does not hold true then the original un-optimized section can be executed to reduce adverse program performance.
    • 包含虚拟呼叫的动态编译的计算机程序代码可以减少编译期间优化的选项。 虚拟呼叫可以影响在虚拟呼叫之后编译的程序代码的部分。 因此,在编译时可能不知道要执行实施部分的状态,从而使这些部分的优化复杂化。 如果对受影响部分的状态做出假设,则可以优化本部分。 为了提供给出优化的执行程序代码的正确操作,在执行优化部分之前执行假设的有效性的检查。 如果假设不成立,则可以执行原始未优化部分以减少不利的程序性能。