Patents Assigned to Kuck & Associates, Inc.
  • Patent number: 5812852
    Abstract: A software-implemented method for dynamically and statically privatizing global storage objects in parallel computer programs written in various programming languages. Privatization is accomplished via transformation of these parallel computer programs under the control of a general purpose computer. The privatization method is system-independent and is portable across various computer architectures and platforms since privatization is accomplished via program transformation; thus, the method does not depend on the features of a particular hardware architecture or configuration, operating system, compiler, linker, or thread environment. The inputs to the method are a parallel computer program, comprising parallel regions of execution and global storage objects, and a privatization specification describing the global storage objects to be privatized and the particular parallel regions, and manner, in which each of these objects is to be privatized.
    Type: Grant
    Filed: November 14, 1996
    Date of Patent: September 22, 1998
    Assignee: Kuck & Associates, Inc.
    Inventors: David K. Poulsen, Paul M. Petersen, Sanjiv M. Shah
  • Patent number: 5805894
    Abstract: A method of analyzing and optimizing programs by predicting branches and redirecting control flow. A program to be analyzed and optimized is inspected to find branches that might be predictable. A set of assertions is generated, analyzed by a dataflow solver and then used to predict the effects of branches. Control flow in the program is redirected to skip over predictable branches. The dataflow solver is capable of analyzing assertions involving lvalues such as variables, pointer expressions, or components of aggregate lvalues.
    Type: Grant
    Filed: March 6, 1996
    Date of Patent: September 8, 1998
    Assignee: Kuck & Associates, Inc.
    Inventor: Arch D. Robison
  • Patent number: 5790866
    Abstract: A method for analyzing and optimizing programs that contain pointers and/or aggregates, such as found in the languages C, C++, FORTRAN-90, and Ada. The method applies to storage locations (lvalues) and values (rvalues) computed by expressions.Data-flow analysis is performed on two levels. The bottom level determines when an rvalue computed at one point in a program is the same if recomputed at a later point in the program. The top level computes reaching definitions, based upon information provided by the bottom level. Each destination lvalue may be designated by an arbitrary rvalue (pointer-expression). Splitting of data-flow analysis into two levels allows computation of reaching definitions that involve assignments to lvalues with designating rvalues that are arbitrary expressions.Furthermore, for aggregate lvalues, which themselves may contain components that are pointers to other aggregates, data-flow analysis is done on a component-by-component basis.
    Type: Grant
    Filed: February 13, 1995
    Date of Patent: August 4, 1998
    Assignee: Kuck and Associates, Inc.
    Inventor: Arch D. Robison
  • Patent number: 5710927
    Abstract: A method for analyzing and optimizing programs that define and use aggregate data structures. A program to be analyzed and optimized is inspected to find definitions and uses of lvalues, which are regions of memory. The lvalues may be denoted by program variables, pointer expressions, or components of aggregate lvalues. A data-flow solver determines where definitions of lvalues reach uses. A set of "least general unifiers" are computed for the definitions and uses. A replacement variable is created for each least general unifier that is determined to be replaceable. Each reference to an lvalue that corresponds to a replaceable least general unifier is replaced by a reference to the corresponding replacement variable or a component thereof. The method is applicable even in the presence of potential aliasing.
    Type: Grant
    Filed: June 14, 1995
    Date of Patent: January 20, 1998
    Assignee: Kuck & Associates, Inc.
    Inventor: Arch D. Robison