会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 3. 发明授权
    • Method, system, and computer program product for extending sparse
partial redundancy elimination to support speculative code motion
within an optimizing compiler
    • 方法,系统和计算机程序产品,用于扩展稀疏部分冗余消除,以支持优化编译器内的推测性代码运动
    • US6151706A
    • 2000-11-21
    • US97715
    • 1998-06-16
    • Raymond LoFrederick Chow
    • Raymond LoFrederick Chow
    • G06F9/45
    • G06F8/445
    • A method, system, and computer program product for performing speculative code motion within a sparse partial redundancy elimination (PRE) framework. Speculative code motion (i.e., speculation) refers to the placement of computations by a compiler in positions in the program that results in some paths being executed more efficiently and some being executed less efficiently. A net speed-up is thus achieved when the improved paths are those executed more frequently during the program's execution. Two embodiments for performing speculative code motion within the PRE framework are presented: (1) a conservative speculation method used in the absence of profile data; and (2) a profile-driven speculation method used when profile data are available. In a preferred embodiment, the two methods may be performed within static single assignment PRE (SSAPRE) resulting in better optimized code.
    • 用于在稀疏部分冗余消除(PRE)框架内执行推测性代码运动的方法,系统和计算机程序产品。 推测性代码运动(即推测)是指编译器在程序中的位置放置计算,这导致一些路径被执行得更有效,而一些执行效率较低。 因此,在程序执行期间更经常地执行改进的路径时,可以实现净加速。 提出了在PRE框架内执行推测性代码运动的两个实施例:(1)在不存在简档数据的情况下使用的保守推测方法; 和(2)当配置文件数据可用时使用的轮廓驱动的推测方法。 在优选实施例中,两种方法可以在静态单个分配PRE(SSAPRE)内执行,从而导致更好的优化代码。
    • 4. 发明授权
    • System, method, and computer program product for partial redundancy
elimination based on static single assignment form during compilation
    • 编译过程中基于静态单个分配表的部分冗余消除的系统,方法和计算机程序产品
    • US6026241A
    • 2000-02-15
    • US873895
    • 1997-06-13
    • Frederick ChowSun ChanRobert KennedyShin-Ming LiuRaymond LoPeng Tu
    • Frederick ChowSun ChanRobert KennedyShin-Ming LiuRaymond LoPeng Tu
    • G06F9/45
    • G06F8/443
    • Partial redundancy elimination of a computer program is described that operates using a static single assignment (SSA) representation of a computer program. The SSA representation of the computer program is processed to eliminate partially redundant expressions in the computer program. This processing involves inserting .PHI. functions for expressions where different values of the expressions reach common points in the computer program. A result of each of the .PHI. functions is stored in a hypothetical variable h. The processing also involves a renaming step where SSA versions are assigned to hypothetical variables h in the computer program, a down safety step of determining whether each .PHI. function in the computer program is down safe, and a will be available step of determining whether each expression in the computer program will be available at each .PHI. function following eventual insertion of code into the computer program for purposes of partial redundancy elimination. The processing also includes a finalize step of transforming the SSA representation of the computer program having hypothetical variables h to a SSA graph that includes some insertion information reflecting eventual insertions of code into the computer program for purposes of partial redundancy elimination, and a code motion step of updating the SSA graph based on the insertion information to introduce real temporary variables t for the hypothetical variables h.
    • 描述了使用计算机程序的静态单一分配(SSA)表示来操作计算机程序的部分冗余消除。 处理计算机程序的SSA表示以消除计算机程序中的部分冗余表达式。 该处理涉及为表达式插入PHI函数,其中表达式的不同值达到计算机程序中的公共点。 每个PHI函数的结果存储在假设变量h中。 该处理还包括重新命名步骤,其中SSA版本被分配给计算机程序中的假想变量h,确定计算机程序中的每个PHI功能是否下降的安全步骤,以及将是可用的步骤,确定每个表达式 为了部分冗余消除的目的,在计算机程序中将最终将代码插入计算机程序之后,在每个PHI功能中将可用。 该处理还包括将具有假设变量h的计算机程序的SSA表示形式的SSA图形变换为SSA图的最终确定步骤,该SSA图形包括反映最终插入代码到计算机程序中以便部分冗余消除的目的的一些插入信息,以及代码运动步骤 基于插入信息更新SSA图,以为假设变量h引入真实临时变量t。
    • 9. 发明授权
    • System and method to efficiently represent aliases and indirect memory
operations in static single assignment form during compilation
    • 在编译期间,以静态单个分配形式有效地表示别名和间接记忆操作的系统和方法
    • US6131189A
    • 2000-10-10
    • US979939
    • 1997-11-26
    • Frederick ChowSun ChanShin-Ming LiuRaymond LoMark Streich
    • Frederick ChowSun ChanShin-Ming LiuRaymond LoMark Streich
    • G06F9/45
    • G06F8/443
    • A system and method for an optimizer of a compilation suite for representing aliases and indirect memory operations in static single assignment (SSA) during compilation of a program having one or more basic blocks of source code. The optimizer converts all scalar variables of said program to SSA form, wherein said SSA form includes a plurality of variable versions, zero or more occurrences of a .chi. function, zero or more occurences of a .phi. function, and zero or more occurrences of a .mu. function. The .chi. function, .phi. function, and .mu. function are inserted for the variable versions. The optimizer also determines whether a variable version can be renamed to a zero version, and upon such a determination, the optimizer renames the variable version to a zero version. The optimizer further converts all indirect variables of a program to SSA form, wherein the SSA form includes a plurality of virtual variable versions such that a virtual variable is assigned to an indirect variable, zero or more occurrences of a .chi. function, zero or more occurences of a .phi. function, and zero or more occurrences of a .mu. function. The .chi. function, .phi. function, and .mu. function are inserted for the virtual variables. The optimizer hashes a unique value number and creates a corresponding hash table entry for each variable version and each virtual variable remaining after renaming all zero versions. The optimizer also applies global value numbering to each basic block of the program.
    • 一种编译套件的优化器的系统和方法,用于在具有一个或多个源代码基本块的程序的编译期间,在静态单赋值(SSA)中表示别名和间接存储器操作。 所述优化器将所述程序的所有标量变量转换为SSA形式,其中所述SSA形式包括多个可变版本,零次或多次出现的chi功能,零个或多个phi功能的出现以及零次或多次出现的mu 功能。 为变量版本插入chi函数,phi函数和mu函数。 优化器还确定变量版本是否可以重命名为零版本,并且在这样的确定时,优化器将变量版本重命名为零版本。 优化器进一步将程序的所有间接变量转换为SSA形式,其中SSA形式包括多个虚拟变量版本,使得虚拟变量被分配到间接变量,零个或多个出现的chi函数,零个或多个出现 的phi功能,以及零个或多个mu功能的出现。 为虚拟变量插入chi函数,phi函数和mu函数。 优化器散列唯一的值编号,并为每个变量版本创建相应的哈希表条目,并在重命名所有零版本后剩余的每个虚拟变量。 优化器还对程序的每个基本块应用全局值编号。
    • 10. 发明授权
    • Method, system, and computer program product for performing register
promotion via load and store placement optimization within an
optimizing compiler
    • 方法,系统和计算机程序产品,用于通过优化编译器中的加载和存储放置优化来执行注册促进
    • US06128775A
    • 2000-10-03
    • US97713
    • 1998-06-16
    • Frederick ChowRobert KennedyShin-Ming LiuRaymond LoPeng TuSun C. Chan
    • Frederick ChowRobert KennedyShin-Ming LiuRaymond LoPeng TuSun C. Chan
    • G06F9/45
    • G06F8/441G06F8/443
    • A method, system, and computer program product for performing register promotion, that optimizes placement of load and store operations of a computer program within a compiler. Based on the observation that the circumstances for promoting a memory location's value to register coincide with situations where the program exhibits partial redundancy between accesses to the memory location, the system is an approach to register promotion that models the optimization as two separate problems: (1) the partial redundancy elimination (PRE) of loads and (2) the PRE of stores. Both of these problems are solved through a sparse approach to PRE. The static single assignment PRE (SSAPRE) method for eliminating partial redundancy using a sparse SSA representation representations the foundation in eliminating redundancy among memory accesses, enabling the achievement of both computational and live range optimality in register promotion results. A static single use (SSU) representation is defined allowing the dual of the SSAPRE algorithm, called SSUPRE, to perform the partial redundancy elimination of stores. SSUPRE is performed after the PRE of loads, taking advantage of the loads' having been converted into pseudo-register references so that there are fewer barriers to the movement of stores. Consequently, the compiler produces more efficient, register-promoted executable program code from the SSA representation.
    • 一种用于执行注册促进的方法,系统和计算机程序产品,其优化了编译器内的计算机程序的加载和存储操作的布局。 基于这样一种观察,即为了提升存储器位置的寄存器值的情况与存储单元存取位置之间存在部分冗余的情况相一致,系统是将优化模型化为两个独立问题的注册升级方法:(1 )负载的部分冗余消除(PRE)和(2)存储的PRE。 这两个问题都是通过稀疏的PRE方法解决的。 使用稀疏SSA表示消除部分冗余的静态单分配PRE(SSAPRE)方法表示在消除存储器访问之间的冗余的基础上,使得能够在注册促进结果中实现计算和实时范围最优化。 定义了静态单用(SSU)表示,允许称为SSUPRE的SSAPRE算法的双重性来执行商店的部分冗余消除。 SSUPRE在负载的PRE之后执行,利用已经转换为伪寄存器引用的负载,使得存储器移动的障碍较少。 因此,编译器从SSA表示形成更高效的注册升级可执行程序代码。