System, method, and computer program product for partial redundancy
elimination based on static single assignment form during compilation
    1.
    发明授权
    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

    IPC分类号: G06F9/45

    CPC分类号: 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。

    Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization
    2.
    发明授权
    Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization 失效
    使用静态单一分配形式作为程序表示的方法,系统和计算机程序产品以及用于执行全局标量优化的介质

    公开(公告)号:US06301704B1

    公开(公告)日:2001-10-09

    申请号:US09097672

    申请日:1998-06-16

    IPC分类号: G06F9445

    CPC分类号: G06F8/443

    摘要: A method, system, and computer product uses a hashed static single assignment (SSA) form as a program representation and a medium for performing global scalar optimization. A compiler, after expressing the computer program in SSA form, can perform one or more static single assignment (SSA)-based, SSA-preserving global scalar optimization procedures on the SSA representation. Such a procedure modifies, (i.e., optimizes) the SSA representation of the program while preserving the utility of its embedded use-deprogram information for purposes of subsequent SSA-based, SSA-preserving global scalar optimizations. This saves the overhead expense of having to explicitly regenerate use-def program information for successive SSA-based, SSA-preserving global scalar optimizations.

    摘要翻译: 方法,系统和计算机产品使用散列静态单赋值(SSA)形式作为程序表示和用于执行全局标量优化的介质。 在以SSA形式表达计算机程序之后,编译器可以在SSA表示上执行一个或多个基于静态单一分配(SSA)的SSA保留的全局标量优化过程。 这样的过程修改(即优化)程序的SSA表示,同时保留其嵌入的使用 - 解除程序信息的用途,以用于随后的基于SSA的SSA保留的全局标量优化。 这节省了为连续的基于SSA,保持SSA的全局标量优化显式地重新生成use-def程序信息的开销费用。

    Method, system, and computer program product for performing register
promotion via load and store placement optimization within an
optimizing compiler
    3.
    发明授权
    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

    IPC分类号: G06F9/45

    CPC分类号: G06F8/441 G06F8/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表示形成更高效的注册升级可执行程序代码。

    System and method to efficiently represent aliases and indirect memory
operations in static single assignment form during compilation

    公开(公告)号:US5768596A

    公开(公告)日:1998-06-16

    申请号:US636605

    申请日:1996-04-23

    IPC分类号: G06F9/45

    CPC分类号: 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.

    System and method to efficiently represent aliases and indirect memory
operations in static single assignment form during compilation
    5.
    发明授权
    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

    IPC分类号: G06F9/45

    CPC分类号: 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函数。 优化器散列唯一的值编号,并为每个变量版本创建相应的哈希表条目,并在重命名所有零版本后剩余的每个虚拟变量。 优化器还对程序的每个基本块应用全局值编号。

    Method and computer program product for global minimization of sign-extension and zero-extension operations
    6.
    发明授权
    Method and computer program product for global minimization of sign-extension and zero-extension operations 有权
    用于全局最小化符号扩展和零延伸操作的方法和计算机程序产品

    公开(公告)号:US06571387B1

    公开(公告)日:2003-05-27

    申请号:US09499745

    申请日:2000-02-08

    IPC分类号: G06F945

    CPC分类号: G06F8/443

    摘要: A method and computer program product, within an optimizing compiler, for the global minimization of sign-extension and zero-extension operations in generated code during compilation. The method and computer program product allows, for example, 64-bit compilers targeting the Intel IA64 architecture to improve their SPECint benchmarks by reducing the number of sign-extension and zero-extension operations in the global and intra-procedural scope, thus, speeding up the execution of the compiled program.

    摘要翻译: 一种优化编译器中的方法和计算机程序产品,用于在编译期间在生成的代码中全局最小化符号扩展和零扩展操作。 该方法和计算机程序产品允许例如针对Intel IA64架构的64位编译器通过减少全局和程序范围内的符号扩展和零扩展操作的数量来改进其SPECint基准,从而加速 执行编译程序。

    Method, system, and computer program product for extending sparse
partial redundancy elimination to support speculative code motion
within an optimizing compiler
    7.
    发明授权
    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

    IPC分类号: G06F9/45

    CPC分类号: 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)内执行,从而导致更好的优化代码。

    Method and computer program product for precise feedback data generation and updating for compile-time optimizations
    8.
    发明授权
    Method and computer program product for precise feedback data generation and updating for compile-time optimizations 有权
    用于编译时优化的精确反馈数据生成和更新的方法和计算机程序产品

    公开(公告)号:US07120906B1

    公开(公告)日:2006-10-10

    申请号:US09560555

    申请日:2000-04-28

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443

    摘要: A method and computer program product, within an optimizing compiler, for precise feedback data generation and updating. The method and computer program uses instrumentation and annotation of frequency values to allow feedback data to stay current during the multiple optimizations that the program code undergoes during compilation. Global propagation of known precise feedback values are used to replace approximate and unavailable values, and global verification of feedback data after optimization to detect discrepancies is employed. The method and computer program also provides improved instrumentation to anticipate cloning when code is cloned during ceratin compiler optimizations and handles inlined procedures. The result is compiled executables with improved SPECint benchmarks.

    摘要翻译: 一种优化编译器内的方法和计算机程序产品,用于精确的反馈数据生成和更新。 该方法和计算机程序使用频率值的仪器和注释来允许反馈数据在程序代码在编译期间经历的多次优化期间保持最新。 使用已知精确反馈值的全局传播来代替近似值和不可用值,并且采用优化后的反馈数据的全局验证来检测差异。 该方法和计算机程序还提供了改进的仪器,以便在ceratin编译器优化期间克隆代码时预期克隆,并处理内联过程。 结果是编译可执行文件,改进了SPECint基准。

    CONNECTIVITY IN A PEER NETWORK
    9.
    发明申请
    CONNECTIVITY IN A PEER NETWORK 审中-公开
    对等网络的连接性

    公开(公告)号:US20090327187A1

    公开(公告)日:2009-12-31

    申请号:US12202179

    申请日:2008-08-29

    IPC分类号: G06N5/02 G06F15/16 H04L9/32

    CPC分类号: H04L67/104

    摘要: Improving connectivity in a peer-to-peer (P2P) network involves packet forwarding by infrastructure or peers. A system can achieve full connectivity and a setup for transactions that takes a fraction of a second. The system can include a routing table that is initially configured so that packets to peers are routed via the infrastructure. NAT traversal heuristics can be employed to establish direct connections between peers in parallel with packet forwarding in accordance with the routing table. When a direct connection is ready, the routing table can be updated so that packets are sent P2P. If a direct connection cannot be made, the routing table can be updated so that the packets are sent through a peer intermediary without going through the infrastructure.

    摘要翻译: 提高对等(P2P)网络中的连通性涉及基础设施或对等体的数据包转发。 系统可以实现完全连接和一个需要几分之一秒的事务的设置。 系统可以包括最初配置的路由表,使得到对等体的分组经由基础设施路由。 可以采用NAT穿越启发式方法,根据路由表,与对等体并发发送直接连接。 当直接连接准备就绪时,可以更新路由表,使数据包发送P2P。 如果不能进行直接连接,则可以更新路由表,以便通过对等中介发送数据包,而无需通过基础架构。

    Hidden user interface panel for personal care appliances and method of making same
    10.
    发明授权
    Hidden user interface panel for personal care appliances and method of making same 有权
    个人护理用具的隐藏用户界面面板及其制作方法

    公开(公告)号:US09021646B2

    公开(公告)日:2015-05-05

    申请号:US13995364

    申请日:2011-12-23

    IPC分类号: A61C17/22 A61C17/34 A46B15/00

    摘要: A power toothbrush appliance (10) which includes a user interface assembly (24) having a hidden interface panel (26) and a method of making same, the appliance including a handle (12, 40) and a brushhead assembly (18) with a brush member (24) for cleaning teeth. The user interface assembly is structured so that when the appliance is in the off condition, the user interface panel is blank, and when the appliance is in an on condition, the indicia associated with the selected operating mode of the toothbrush is illuminated and visible to the user. The interface panel includes a first paint layer of gray or black paint (42) on a translucent handle (40). The mode indicia are etched (44) to the handle in the first paint layer. A second paint layer of white paint (46) is applied over the first layer and is light-transmitting so that when the toothbrush is on, the selected indicia are visible to the user.

    摘要翻译: 一种电动牙刷器具(10),其包括具有隐藏接口面板(26)的用户界面组件(24)及其制造方法,所述设备包括手柄(12,40)和具有 用于清洁牙齿的刷子(24)。 用户接口组件被构造成使得当设备处于关闭状态时,用户接口面板为空白,并且当设备处于开启状态时,与所选择的牙刷操作模式相关联的标记被照亮并可见 用户。 界面面板包括在半透明手柄(40)上的灰色或黑色涂料(42)的第一涂料层。 模式标记被蚀刻(44)到第一涂层中的手柄。 白色涂料(46)的第二涂层施加在第一层上并且是透光的,使得当牙刷开启时,所选择的标记对于用户是可见的。