会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 2. 发明授权
    • Method and apparatus for modular reordering of portions of a computer
program based on profile data
    • 基于简档数据对计算机程序的部分进行模块化重排序的方法和装置
    • US6029004A
    • 2000-02-22
    • US819526
    • 1997-03-17
    • Vita BortnikovBilha MendelsonMark NovickRobert Ralph RoedigerWilliam Jon SchmidtInbal Shavit-Lottem
    • Vita BortnikovBilha MendelsonMark NovickRobert Ralph RoedigerWilliam Jon SchmidtInbal Shavit-Lottem
    • G06F9/45G06F9/44
    • G06F8/445
    • An apparatus and method reorder portions of a computer program in a way that achieves both enhanced performance and maintainability of the computer program. A global call graph is initially constructed that includes profile data. From the information in the global call graph, an intramodular call graph is generated for each module. Reordering techniques are used to reorder the procedures in each module according to the profile data in each intramodular call graph. An intermodular call graph is generated from the information in the global call graph. Reordering techniques are used to reorder the modules in the computer program. By reordering procedures within modules, then reordering the modules, enhanced performance is achieved without reordering procedures across module boundaries. Respecting module boundaries enhances the maintainability of the computer program by allowing a module to be replaced without adversely affecting the other modules while still providing many of the advantages of global procedure reordering.
    • 一种装置和方法以实现计算机程序的增强的性能和可维护性的方式重新排序计算机程序的部分。 最初构建包括配置文件数据的全局调用图。 从全局调用图中的信息,为每个模块生成一个集体内调用图。 根据每个模块间调用图中的配置文件数据,重新排序技术用于对每个模块中的过程重新排序。 从全局调用图中的信息生成一个多模式调用图。 重新排序技术用于重新排序计算机程序中的模块。 通过重新排序模块中的过程,然后重新排序模块,实现增强的性能,而无需跨模块边界重新排序过程。 尊重模块边界通过允许更换模块而不会对其他模块产生不利影响,从而提高计算机程序的可维护性,同时仍然提供全局过程重新排序的许多优点。
    • 4. 发明授权
    • Compiler apparatus and method for optimizing loops in a computer program
    • 用于优化计算机程序中的循环的编译器装置和方法
    • US06938249B2
    • 2005-08-30
    • US09992324
    • 2001-11-19
    • Robert Ralph RoedigerWilliam Jon Schmidt
    • Robert Ralph RoedigerWilliam Jon Schmidt
    • G06F9/45G06F11/34
    • G06F11/3466G06F8/443G06F2201/865
    • A profile-based loop optimizer generates an execution frequency table for each loop that gives more detailed profile data that allows making a more intelligent decision regarding if and how to optimize each loop in the computer program. The execution frequency table contains entries that correlate a number of times a loop is executed each time the loop is entered with a count of the occurrences of each number during the execution of an instrumented instruction stream. The execution frequency table is used to determine whether there is one dominant mode that appears in the profile data, and if so, optimizes the loop according to the dominant mode. The optimizer may perform optimizations by peeling a loop, by unrolling a loop, and by performing both peeling and unrolling on a loop according to the profile data in the execution frequency table for the loop. In this manner the execution time of the resulting code is minimized according to the detailed profile data in the execution frequency tables, resulting in a computer program with loops that are more fully optimized.
    • 基于配置文件的循环优化器为每个循环生成执行频率表,以提供更详细的配置文件数据,从而可以对计算机程序中的每个循环是否以及如何优化。 执行频率表包含将在每次循环输入时执行循环的次数与执行被测试指令流期间每个数字的出现次数相关联的条目。 执行频率表用于确定在配置文件数据中是否存在一个主要模式,如果是,则根据主导模式优化循环。 优化器可以通过剥离循环,展开循环,以及根据循环的执行频率表中的轮廓数据在循环上执行剥离和展开来执行优化。 以这种方式,根据执行频率表中的详细简档数据,最终得到的代码的执行时间最小化,从而导致具有更完全优化的循环的计算机程序。
    • 7. 发明授权
    • Register allocation method and apparatus for truncating runaway
lifetimes of program variables in a computer system
    • 用于截断计算机系统中程序变量失控寿命的寄存器分配方法和装置
    • US5761514A
    • 1998-06-02
    • US522052
    • 1995-08-31
    • Nava Arela AizikowitzRoy Bar-HaimEdward Curtis ProsserRobert Ralph RoedigerWilliam Jon Schmidt
    • Nava Arela AizikowitzRoy Bar-HaimEdward Curtis ProsserRobert Ralph RoedigerWilliam Jon Schmidt
    • G06F9/45
    • G06F8/433G06F8/441
    • A method and apparatus for truncating runaway lifetimes of program variables calculates liveness for each variable based on upwardly exposed uses. Reaching definitions are then calculated for at least the program variables that have runaway lifetimes. The liveness information is compared to the reaching definition information to determine whether a variable that is live upon entry to a basic block has a definition that reaches the end of each predecessor block, or has a use within the basic block. If the reaching definition for a variable reaches the beginning of the block and if there is a predecessor block for which there is no reaching definition, the variable has a runaway lifetime. The variable also has a runaway lifetime if there is a use of the variable in a block without a reaching definition for the variable at the beginning of the block. The runaway lifetime is truncated by inserting an instruction such as a pseudo-definition of the variable into the instruction stream at an appropriate place. Once runaway lifetimes are truncated using this method, subsequent stages of the compiler may calculate liveness by performing a single dataflow analysis which calculates lifetimes based on upwardly exposed uses.
    • 用于截断程序变量的失效寿命的方法和装置根据向上暴露的使用来计算每个变量的活动性。 然后对至少具有失效寿命的程序变量计算达到定义。 将活动信息与达到的定义信息进行比较,以确定在输入到基本块时是否存在活动的变量具有到达每个前导块的结束的定义,或者在基本块内具有使用。 如果变量的到达定义到达块的开头,并且如果存在没有到达定义的前导块,则该变量具有失控的生命周期。 如果块中的变量使用块的开头处的变量没有达到定义,那么该变量也将失效。 通过在适当的地方将诸如伪变量的伪定义的指令插入指令流来截断失控生命周期。 一旦使用这种方法截断失效生命周期,编译器的后续阶段可以通过执行基于向上暴露的使用计算寿命的单个数据流分析来计算活动。
    • 8. 发明授权
    • Lifetime-sensitive mechanism and method for hoisting invariant computations out of loops in a computer program
    • 在计算机程序中将不变计算提升出来的终身敏感机制和方法
    • US06772414B1
    • 2004-08-03
    • US09099584
    • 1998-06-18
    • Robert Ralph RoedigerWilliam Jon Schmidt
    • Robert Ralph RoedigerWilliam Jon Schmidt
    • G06F945
    • G06F8/433G06F8/443
    • A mechanism and method for hoisting invariant computations from loops analyzes the lifetimes of fixed processor resources defined by an instruction, and determines whether a group of computations present in multiple instructions within the lifetime are, taken together, loop-invariant and legal to hoist from the loop. If the group of computations within the lifetime of the fixed processor resource are loop-invariant and hoistable, all of the computations are hoisted out of the loop as a group. By determining the lifetimes of fixed processor resources defined in an instruction, the hoisting mechanism succeeds in hoisting out groups of computations that cannot be individually hoisted out of a loop, thereby achieving better performance when the computer program executes.
    • 用于从循环提升不变计算的机制和方法分析由指令定义的固定处理器资源的寿命,并且确定存在于寿命内的多个指令中的一组计算是否一起循环不变并且合法地从 循环。 如果在固定处理器资源的寿命期内的计算组是循环不变的并且可以悬挂,则所有的计算作为一个组被提升出循环。 通过确定指令中定义的固定处理器资源的寿命,提升机构成功地将不能单独提升出循环的计算组提升出来,从而在计算机程序执行时获得更好的性能。