| 6049669 |
Exploiting case correlation to increase performance of programs with branch/switch instructions |
| Apr-11-2000 |
Data processing time is enhanced in a system in which the executable code has inserted therein certain instructions, by a system and method which anticipates which switch will occur when multipath decision... |
| 6041181 |
Method of, system for, and computer program product for providing quick fusion in WHERE constructs |
| Mar-21-2000 |
FORTRAN WHERE construct compilation and optimization is provided by excluding an assignment statement containing a transformational intrinsic function from loop fusion of the WHERE construct. To perform... |
| 6038398 |
Method and apparatus for improving performance of a program using a loop interchange, loop distribution, loop interchange sequence |
| Mar-14-2000 |
A compiler optimizing procedure improves a sequence of memory addressing actions of a program, wherein the program includes a plurality of do loops. The procedure includes the steps of: performing an interchange... |
| 6035125 |
Method and system for generating compact code for the loop unrolling transformation |
| Mar-7-2000 |
A loop unrolling trasformation specified by loop unrolling factors UF[1], . . . , UF[k] is performed on a perfect nest of k multiple loops to produce an unrolled loop representation as follows. Moving... |
| 6032252 |
Apparatus and method for efficient loop control in a superscalar microprocessor |
| Feb-29-2000 |
A superscalar microprocessor implements a repeated string instruction by putting the microcode unit in a continuous loop. The microcode sequence that implements the repeated string operation includes a... |
| 6016399 |
Software pipelining a hyperblock loop |
| Jan-18-2000 |
An iterative software pipelining method promotes instructions of a program loop to previous loop iterations and then reschedules the instructions until either 1) the resultant schedule is optimal (i.e.,... |
| 6016397 |
Method and apparatus for compilation of a data parallel language |
| Jan-18-2000 |
A loop having an index set that can be distributed but with data dependency on the right side of an assignment expression that is indefinite can be parallelized. The index set of the loop is distributed... |
| 6009273 |
Method for conversion of a variable argument routine to a fixed argument routine |
| Dec-28-1999 |
A compiler method analyzes a program listing to identify a first set of subroutines therein, each of which accepts a variable number of arguments, converting the first set of subroutines into further sets... |
| 5999738 |
Flexible scheduling of non-speculative instructions |
| Dec-7-1999 |
A technique for flexible scheduling of a code sequence wherein a set of instructions for determining a a fully-resolved predicate for each of a set of non-speculative instructions contained in the code... |
| 5953531 |
Method of, system for, and computer program product for minimizing loop execution time by optimizing block/tile sizes |
| Sep-14-1999 |
An optimized set of block sizes for a nest of loops for improved data locality is determined by estimating a memory cost per iteration as a function of the block sizes and selecting a set of block sizes... |
| 5930507 |
Compiling processing apparatus |
| Jul-27-1999 |
A compiling processing apparatus which compiles a program operating in a computer having a cache memory. This apparatus collects memory access data for the cache memory, analyzes confliction relationships... |
| 5907711 |
Method and apparatus for transforming multiplications into product table lookup references |
| May-25-1999 |
A compiler automatically determines when it is advantageous to perform multiply operations by using a table of product values (that is, a table that contains scale.sub.-- factor .times.0 as its first entry,... |
| 5881291 |
System for conversion of loop functions in continuation-passing style |
| Mar-9-1999 |
A compiler and compilation method for processing a source program in a programming language in the Scheme/Lisp family into a representation known as continuation-passing style (CPS) before generating object... |
| 5862385 |
Compile method for reducing cache conflict |
| Jan-19-1999 |
A compiling method, for use with programs to be executed on a computer with cache memory, which programs would otherwise generate decreased performance due to cache conflicts arising from conflicting cache... |
| 5862384 |
Compiler optimizer that moves loop invariant expressions |
| Jan-19-1999 |
A compiler optimizing device provided with an optimizing section comprising an update variable control table to control the update variables to be changed in relation to the functions contained in the... |
| 5854933 |
Method for optimizing a computer program by moving certain load and store instructions out of a loop |
| Dec-29-1998 |
A method, performed by a computer, for optimizing a computer program having a plurality of instructions that form a loop. The loop has a first block and a second block. The first block has at least one... |
| 5845126 |
Method of, system for, and computer program product for providing inlined nested array constructors using normalized counters |
| Dec-1-1998 |
Method of, system for, and computer program product for generating efficient code for a set of nested Fortran 90 array constructors without introducing temporary vectors by the use of normalized counters... |
| 5842022 |
Loop optimization compile processing method |
| Nov-24-1998 |
The entire space of a loop is analyzed for dependencies between target array elements so that dependency ID's are assigned to the target array elements. Optimization is carried out on the basis of the... |
| 5815721 |
Method and apparatus for optimizing complex control structures using abstract web patterns |
| Sep-29-1998 |
An optimizing compiler for optimizing a computer program. The compiler builds abstract web representations for the code segments of the computer program. The compiler also maintains a library of abstract... |
| 5805895 |
Method and apparatus for code translation optimization |
| Sep-8-1998 |
A native microprocessor (20) accesses a foreign block of computer code. An initial block scope defining translation parameters is assigned to the block (106). The block of "foreign" code is translated... |
| 5805863 |
Memory pattern analysis tool for use in optimizing computer program code |
| Sep-8-1998 |
A method of facilitating optimization of computer program code. The code includes instructions for performing a plurality of loops, with each loop including at least one memory reference. The program code... |
| 5802375 |
Outer loop vectorization |
| Sep-1-1998 |
A system and method for vectorizing a non-innermost loop of a nested loop. Iterative loops of a nested loop are analyzed to determine if they can be vectorized (vector legality). If more than one iterative... |
| 5797013 |
Intelligent loop unrolling |
| Aug-18-1998 |
A compiler facilitates efficient unrolling of loops and enables the elimination of extra branches from the loops, including the elimination of conditional branches from unrolled loops with early exits.... |
| 5790866 |
Method of analyzing definitions and uses in programs with pointers and aggregates in an optimizing compiler |
| Aug-4-1998 |
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... |
| 5781777 |
Optimization method for computation partitioning oriented to a distributed memory |
| Jul-14-1998 |
When a loop contains a plurality of statements, a compiled program is generated without performing loop distribution, the resultant loop having no runtime resolution statement. A parallelizing compiler... |
| 5768592 |
Method and apparatus for managing profile data |
| Jun-16-1998 |
A heuristic prediction method of generating profile information for compilers in a computer system that associates profile information to attribute-vectors of a source code derived from observation points... |
| 5764993 |
Data updating method using overlap area and program converting device for converting update program in distributed-memory parallel processor |
| Jun-9-1998 |
In a parallel processor, a local area and an overlap area are assigned to the memory of each processing element (PE), and each PE makes calculations to update the data in both areas at the runtime. If... |
| 5752037 |
Method of prefetching data for references with multiple stride directions |
| May-12-1998 |
There are two separate, yet related, prefetching strategies used for data references used having multiple strides, which typically occur in data references within nested loop structures. The first approach... |
| 5640568 |
Inline expansion method for programming languages having array functions |
| Jun-17-1997 |
To provide inline expansion universally applicable to a variety of formulas as combinations of array functions and array operations with a programming language such as APL or FORTRAN 90 having array functions,... |
| 5634059 |
Device and method for parallelizing compilation optimizing data transmission |
| May-27-1997 |
The present invention relates to an optimizing compiler apparatus for converting a source program into an object program for use by a parallel computer, which optimizes the number of data transmissions... |
| 5584027 |
Method and apparatus for finding induction variables for use in compiling computer instructions |
| Dec-10-1996 |
A compiler and/or a compilation method is used to change or compile a plurality of instructions in memory from a form which is better understood by a human user to a form which is readily executed by a... |
| 5537620 |
Redundant load elimination on optimizing compilers |
| Jul-16-1996 |
A method for eliminating redundant loads in an optimizing compiler is provided. When a LOAD and memory operation occur in an iterative loop structure having an induction variable, the method determines... |
| 5481723 |
System and method for controlling execution of nested loops in parallel in a computer including multiple processors, and compiler for generating code therefore |
| Jan-2-1996 |
A system and method for controlling execution of nested loops in parallel in a computer including multiple processors, and a compiler for generating code therefor. The code enables the computer to operate... |
| 5475842 |
Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution |
| Dec-12-1995 |
When a data-parallel language like Fortran 90 is compiled for a distributed-memory machine, aggregate data objects (such as arrays) are distributed across the processor memories. The mapping determines... |
| 5457799 |
Optimizer for program loops |
| Oct-10-1995 |
In a method for optimizing loops of a program, the program is partitioned into a plurality of procedures, each procedure including instructions related for execution. A program call graph is constructed... |
| 5450585 |
Compiler with delayed conditional branching |
| Sep-12-1995 |
An optimization method or apparatus adapted for use on a compiler for generating machine code optimized for a pipeline processor. A compute-compare-branch sequence in a loop is replaced with a compare-compute-branch... |
| 5450554 |
Apparatus for detecting possibility of parallel processing and method thereof and a program translation apparatus utilized therein |
| Sep-12-1995 |
The present invention provides an apparatus for detecting whether a program having an iterative loop can be processed in parallel. The apparatus includes including a simulation unit for simulating each... |
| 5437034 |
Method of generating from source program object program by which final values of variables for parallel execution are guaranteed |
| Jul-25-1995 |
In a method of generating an object program for a multiprocessor system from a source program including a loop, there is detected a variable in the loop. For the detected variable, first codes providing... |
| 5396627 |
Method of producing object program based on interprocedural dataflow analysis of a source program |
| Mar-7-1995 |
A method of producing an object program from an inputted source program with a compiler using a computer, includes the steps of: performing an interprocedural dataflow analysis of a variable associated... |
| 5386562 |
Circular scheduling method and apparatus for executing computer programs by moving independent instructions out of a loop |
| Jan-31-1995 |
A procedure which is a particular type of software pipelining is provided which increases the efficiency with which code is executed by reducing or eliminating stalls such as by filling delay slots. The... |
| 5361354 |
Optimization of alternate loop exits |
| Nov-1-1994 |
An optimization method to be carried out within a digital computer under programmed control for eliminating or removing from a loop body alternate exit tests substantially of the form .alpha.i+.beta.cond.phi.,... |
| 5349665 |
Compiler vectorizing system |
| Sep-20-1994 |
According to the present invention, there is provided a compiler vectorizing system for vectorizing the same variables defined at a plurality of positions by using an asymptotic formula in which a condition... |
| 5317743 |
System for compiling iterated loops based on the possibility of parallel execution |
| May-31-1994 |
A compiler apparatus in a computer converts source program to object program to be executed by the computer. If loop instructions are included in the object program, the resource reference extraction section... |
| 5303357 |
Loop optimization system |
| Apr-12-1994 |
In loop processing by an electronic computer that simultaneously executes a plurality of instructions, a loop optimization system according to this invention comprises loop analyzing means for judging... |
| 5287510 |
Method for improving the efficiency of arithmetic code generation in an optimizing compiler using machine independent update instruction generation |
| Feb-15-1994 |
This invention provides a process within an optimizing compiler for transforming code to take advantage of update instructions available on some computer architectures. On architectures which implement... |
| 5274812 |
Method of compiling source code into vectorized object code by performing a one-dimensional analysis on each dimension of a multi-dimensional array within a loop |
| Dec-28-1993 |
A process of compiling using a vectorized checkup method for converting array calculations appearing in a loop to be vectorized in a source program into vector calculations. The process determines a number... |
| 5265253 |
Method of unrolling/optimizing repetitive loop |
| Nov-23-1993 |
A method of unrolling/optimizing a repetitive loop, in which a program compiler in a computer system unrolls and optimizes a repetitive loop instruction, includes the following steps. It is checked whether... |
| 5247696 |
Method for compiling loops having recursive equations by detecting and correcting recurring data points before storing the result to memory |
| Sep-21-1993 |
A vector update method for vectorizing loops containing recursive equations within a supercomputer. Program code containing a loop is transformed into a nested loop in which the interior loop performs... |
| 5202995 |
Method for removing invariant branches from instruction loops of a computer program |
| Apr-13-1993 |
Removal of invariant branches from nests of loops results in an optimized computer program with increased speed of execution. To accomplish this objective, each loop of a program is then examined, looking... |
| 5109331 |
Compiling a source program by analyzing a subscript of an array included in a loop processing of a computer |
| Apr-28-1992 |
An induction variable contained in a definition formula for a variable in a loop is analyzed for a source program to be compiled in order to optimize the execution of the program. The induction variable... |