Patents by Inventor Edward Curtis Prosser

Edward Curtis Prosser has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6983459
    Abstract: A method, system, and program product for optimizing compilation. In the preferred embodiment, a compiler compiles a source-code file twice; once to gather register-pressure data, and a second time to apply the data. Thus, the compiler saves register-pressure data during the first compilation and uses it during the second compilation to make informed inlining decisions. The compiler saves two kinds of data during the first compilation: (1) the maximum register-pressure occurring in each procedure; and (2) within each procedure, the register pressure at each call site that is a potential inlining candidate. This data is then fed into the compiler during the second compilation. The compiler uses the data during the second compilation in two ways. First, when deciding whether to inline a child procedure into a parent procedure, the compiler determines whether the sum of the maximum register-pressure and the site register-pressure exceeds the number of available, physical registers.
    Type: Grant
    Filed: April 6, 1999
    Date of Patent: January 3, 2006
    Assignee: International Business Machines Corporation
    Inventors: Edward Curtis Prosser, William Jon Schmidt
  • Patent number: 6523173
    Abstract: Register allocation during computer program code compilation is accomplished by determining a set of spill candidates, by evaluating a cost function for each spill candidate using a plurality of spill strategies, and by selecting the spill candidate having the lowest cost function value. Preferably, the set of possible spill candidates is determined by the Chaitin method of constructing an interference graph of all live ranges of symbolic registers, and iteratively removing nodes and placing them on a stack. Preferably, multiple spill strategies are represented as varying numbers of deaths N of live ranges of other symbolic registers, a spill strategy N signifying that spill code is introduced whenever the number of deaths occurring between two successive uses of a symbolic register equals or exceeds N. In the preferred embodiment, the cost is a function of the number, type and frequency of each operation introduced by the spill, and is divided by a benefit factor represented as the degree of the node.
    Type: Grant
    Filed: January 11, 2000
    Date of Patent: February 18, 2003
    Assignee: International Business Machines Corporation
    Inventors: Peter Edward Bergner, Edward Curtis Prosser
  • Patent number: 6360360
    Abstract: In an object-oriented or object-based computer system, a compiler mechanism allows a compiler to automatically select among multiple implementations of an object to optimize the performance of the compiled code. The selection may be made by assigning a weighted cost to each of the implementations, and selecting the implementation with the lowest weighted cost, where the weighted cost represents estimates of execution frequencies for each of the object's functions. In the alternative, for implementations that have different interfaces, the selection may be made based on an evaluation of the functions used in the program compared to the functions provided by the different implementations, and selecting an implementation that contains all functions issued against the object with a minimum of functions that are not issued against the object.
    Type: Grant
    Filed: February 8, 1996
    Date of Patent: March 19, 2002
    Assignee: International Business Machines Corporation
    Inventors: Cary Lee Bates, Edward Curtis Prosser, William Jon Schmidt
  • Patent number: 6301652
    Abstract: A compiler system and method is provided that can 1) generate a second instruction stream from a first instruction stream, 2) read in and process predetermined external information regarding the basic blocks that makes up the second instruction stream and 3) place certain of the basic blocks on cache line boundaries based on predicted execution frequencies. In particular, the compiler system and method utilize profile information containing predicted block execution or edge-weight execution frequencies to determine which of the basic blocks to align on cache line boundaries. One method for obtaining profile information includes precompiling the source code, creating an executable program, executing the program with test inputs, and outputting a profile containing execution frequency information. Once the profile information is obtained, the source code can then be recompiled using the profile information. The compiler can then selectively cache align those blocks identified as important.
    Type: Grant
    Filed: January 31, 1996
    Date of Patent: October 9, 2001
    Assignee: International Business Machines Corporation
    Inventors: Edward Curtis Prosser, Robert Ralph Roediger, William Jon Schmidt
  • Patent number: 5946491
    Abstract: A method and apparatus for minimizing spill code in regions of low register pressure determines the register pressure at various locations in the computer program. When a live range is selected for spilling, spill code is generated to relieve the register pressure in regions of high register pressure, while spill code is avoided in regions of low register pressure. In this manner a minimum amount of spill code is generated, enhancing both the compile time and the run time of the resultant instruction stream.
    Type: Grant
    Filed: June 6, 1996
    Date of Patent: August 31, 1999
    Assignee: International Business Machines Corporation
    Inventors: Nava Arela Aizikowitz, Liviu Asnash, Roy Bar-Haim, Edward Curtis Prosser, Robert Ralph Roediger, William Jon Schmidt
  • Patent number: 5937196
    Abstract: A compiler and method of compiling provide partial redundant copy elimination by eliminating copy statements having at least one eligible reachable use and at least one ineligible reachable use. To eliminate such statements, the used operand of each eligible use is replaced with the used operand in the copy statement, and the copy statement is duplicated prior to each ineligible use.
    Type: Grant
    Filed: September 19, 1997
    Date of Patent: August 10, 1999
    Assignee: International Business Machines Corporation
    Inventors: William Jon Schmidt, Edward Curtis Prosser, Robert Ralph Roediger
  • Patent number: 5890000
    Abstract: A method and device for optimizing a compiler involves cooperation between the global and local register allocators in assigning symbolic registers to hardware registers. A large procedure may have many associated symbolic registers; the invention involves partitioning the symbolic registers into at least two portions, and allowing the global register allocator to assign one portion and the local register allocator to assign another portion. The registers may be partitioned based on different criteria, such as local vs. global registers, or spill costs, or shallow vs. nested regions.
    Type: Grant
    Filed: December 4, 1996
    Date of Patent: March 30, 1999
    Assignee: International Business Machines Corporation
    Inventors: Nava E. Aizikowitz, Roy N. Bar-Haim, Orit Edelstein, Edward Curtis Prosser, Robert Ralph Roediger
  • Patent number: 5784066
    Abstract: A method and apparatus for coloring an interference graph eliminates register copy instructions in an instruction stream by taking into consideration the colors of a node's direct or transitive partners when choosing a color for a node. By assigning a color to a node that is also the color of a direct or transitive partner, register copy instructions between the two partners may be eliminated. If more than one of the partners at any given level are colored, one of the colors may be selected over the others using an appropriate heuristic, such as a scheme that weights the colors appropriately.
    Type: Grant
    Filed: November 22, 1995
    Date of Patent: July 21, 1998
    Assignee: International Business Machines Corporation
    Inventors: Nava Arela Aizikowitz, Edward Curtis Prosser, Robert Ralph Roediger
  • Patent number: 5774730
    Abstract: A method and apparatus for coloring an interference graph yields a higher number of colored nodes by taking into consideration the colors of neighbors of a node's uncolored constrained neighbors. By assigning a color to a node that is also the color of a neighbor of an uncolored constrained neighbor, one color constraint is removed, increasing the probability of coloring the uncolored constrained neighbor. If more than one of the neighbors of the uncolored constrained neighbors are colored, one of the colors may be selected over the others using an appropriate heuristic.
    Type: Grant
    Filed: July 31, 1995
    Date of Patent: June 30, 1998
    Assignee: International Business Machines Corporation
    Inventors: Nava Arela Aizikowitz, Liviu Asnash, Roy Bar-Haim, Orit Edelstein, Mircea Namolaru, Edward Curtis Prosser, Robert Ralph Roediger, William Jon Schmidt
  • Patent number: 5761514
    Abstract: 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.
    Type: Grant
    Filed: August 31, 1995
    Date of Patent: June 2, 1998
    Assignee: International Business Machines Corporation
    Inventors: Nava Arela Aizikowitz, Roy Bar-Haim, Edward Curtis Prosser, Robert Ralph Roediger, William Jon Schmidt