| 6993757 |
Method and apparatus for multi-versioning loops to facilitate modulo scheduling |
| Jan-31-2006 |
One embodiment of the present invention provides a system that facilitates multi-versioning loops to facilitate modulo scheduling. Upon receiving a computer program, the system analyzes the code to locate... |
| 6993756 |
Optimization apparatus that decreases delays in pipeline processing of loop and computer-readable storage medium storing optimization program |
| Jan-31-2006 |
An optimization apparatus is capable of improving the execution efficiency of a loop that includes a loop carry dependency between consecutive iterations of the loop. For example, a value resulting from... |
| 6988266 |
Method of transforming variable loops into constant loops |
| Jan-17-2006 |
A system and method for processing a variable looping statement into a constant looping statement to enable loop unrolling. A lower bound and an upper bound of the loop index within the variable looping... |
| 6986131 |
Method and apparatus for efficient code generation for modulo scheduled uncounted loops |
| Jan-10-2006 |
A method of efficient code generation for modulo scheduled uncounted loops includes: assigning a given stage predicate to each instruction in each stage, including assigning a given stage predicate to... |
| 6973648 |
Method and device to process multidimensional array objects |
| Dec-6-2005 |
A method for processing a multidimensional array object in which a multidimensional array is implemented by an array of array objects. The multidimensional array object comprises array objects which constitute... |
| 6954927 |
Hardware supported software pipelined loop prologue optimization |
| Oct-11-2005 |
A method for optimizing a software pipelineable loop in a software code is provided. The loop comprises one or more pipelined stages and one or more loop operations. The method comprises evaluating an... |
| 6952821 |
Method and system for memory management optimization |
| Oct-4-2005 |
A system and method of automatically configuring memory in a data processing system, including the steps of: receiving source code containing a loop nest, wherein the loop nest includes data arrays with... |
| 6952816 |
Methods and apparatus for digital circuit design generation |
| Oct-4-2005 |
A technique for synthesizing digital circuit designs by incorporating timing convergence and routability considerations. In one aspect, the invention provides a system and programmatic method for generating... |
| 6938249 |
Compiler apparatus and method for optimizing loops in a computer program |
| Aug-30-2005 |
A profile-based loop optimizer generates an execution frequency table for each loop that gives more detailed profile data that allows making a more intelligent decision regarding if and how to optimize... |
| 6928642 |
Code generation for mapping object fields within nested arrays |
| Aug-9-2005 |
A method and device for generating mapping source code to establish mapping connections between enterprise system nested array object fields and legacy system nested array object fields is disclosed. For... |
| 6922826 |
Debugger impact reduction through breakpoint motion |
| Jul-26-2005 |
A first type of debugger impact reduction includes removing, from within a loop, an initial conditional breakpoint ("ICB"); extracting a first Boolean expression ("BE_1") therefrom; setting a special conditional... |
| 6892380 |
Method for software pipelining of irregular conditional control loops |
| May-10-2005 |
A method for software pipelining of irregular conditional control loops including pre-processing the loops so they can be safely software pipelined. The pre-processing step ensures that each original instruction... |
| 6842895 |
Single instruction for multiple loops |
| Jan-11-2005 |
Embodiments of the present invention relate generally to the manner in which processors execute multiple loop instructions. That is, embodiments of the invention relate to the organization of multiple... |
| 6839895 |
Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring |
| Jan-4-2005 |
Code restructuring or reordering based on profiling information and memory hierarchy is provided by constructing a Program Execution Graph (PEG) corresponding to a level of the memory hierarchy, partitioning... |
| 6795908 |
Method and apparatus for instruction execution in a data processing system |
| Sep-21-2004 |
A method for processing scalar and vector executions, where vector executions may be "true" vector operations, CVA, or pseudo-vector operations, PVA. All three types of executions are processed using one... |
| 6772414 |
Lifetime-sensitive mechanism and method for hoisting invariant computations out of loops in a computer program |
| Aug-3-2004 |
A mechanism and method for hoisting invariant computations from loops analyzes the lifetimes of fixed processor resources defined by an instruction, and determines whether a group of computations present... |
| 6721943 |
Compile-time memory coalescing for dynamic arrays |
| Apr-13-2004 |
In general, the malloc-combining transformation optimization during compile-time of a source program engaged in dynamically constructing multi-dimensional arrays provides an effective method of improving... |
| 6708331 |
Method for automatic parallelization of software |
| Mar-16-2004 |
The invention provides a scalable, automated, network friendly method for building parallel applications from embarrassingly parallel serial programs. Briefly, the steps of an exemplary method in this... |
| 6671878 |
Modulo scheduling via binary search for minimum acceptable initiation interval method and apparatus |
| Dec-30-2003 |
Disclosed herein is an instruction set scheduling system for scheduling instruction sets in a pipelined processing system. In particular, the scheduling system includes a binary search technique for ascertaining... |
| 6665864 |
Method and apparatus for generating code for array range check and method and apparatus for versioning |
| Dec-16-2003 |
The present invention eliminates redundant array range checks. A two-phased check is performed, namely a wide range check is performed by combining a plurality of array range checks, and a strict range... |
| 6651246 |
Loop allocation for optimizing compilers |
| Nov-18-2003 |
Loop allocation for optimizing compilers includes the generation of a program dependence graph for a source code segment. Control dependence graph representations of the nested loops, from innermost to... |
| 6634024 |
Integration of data prefetching and modulo scheduling using postpass prefetch insertion |
| Oct-14-2003 |
The present invention integrates data prefetching into a modulo scheduling technique to provide for the generation of assembly code having improved performance. Modulo scheduling can produce optimal steady... |
| 6631465 |
Method and apparatus for instruction re-alignment using a branch on a falsehood of a qualifying predicate |
| Oct-7-2003 |
A method and apparatus that provides instruction re-alignment using a branch on a falsehood of a qualifying predicate. A complementary predicate related to a qualifying predicate is determined to be available.... |
| 6622301 |
Parallel program generating method |
| Sep-16-2003 |
When converting a sequential execution source program into a parallel program to be executed by respective processors (nodes) of a distributed shared memory parallel computer, a compiler computer transforms... |
| 6615403 |
Compare speculation in software-pipelined loops |
| Sep-2-2003 |
The present invention provides a mechanism for implementing compare speculation in software pipelined loops. A data dependency graph (DDG) is generated for a loop that includes a control compare instruction,... |
| 6567976 |
Method for unrolling two-deep loops with convex bounds and imperfectly nested code, and for unrolling arbitrarily deep nests with constant bounds and imperfectly nested code |
| May-20-2003 |
A compiler for compiling source code whereby the compiled source code is optimized by performing outer loop unrolling (a generalization of "unroll and jam" on selected loop nests. The present invention... |
| 6539543 |
Method and apparatus for compiling source code by flattening hierarchies |
| Mar-25-2003 |
A method and apparatus for optimizing the compilation of computer program by exposing parallelism are disclosed. The computer program contains steps which involve index expressions. The program also involves... |
| 6539541 |
Method of constructing and unrolling speculatively counted loops |
| Mar-25-2003 |
A method of constructing and unrolling speculatively counted loops. The method of the present invention first locates a memory load instruction within the loop body of a loop. An advance load instruction... |
| 6507947 |
Programmatic synthesis of processor element arrays |
| Jan-14-2003 |
A programmatic method transforms a nested loop in a high level programming language into a set of parallel processes, each a single time loop, such that the parallel processes satisfy a specified design... |
| 6438747 |
Programmatic iteration scheduling for parallel processors |
| Aug-20-2002 |
A parallel compiler maps iterations of a nested loop to processor elements in a parallel array and schedules a start time for each iteration such that the processor elements are fully utilized without... |
| 6421826 |
Method and apparatus for performing prefetching at the function level |
| Jul-16-2002 |
One embodiment of the present invention provides a system for compiling source code into executable code that performs prefetching for memory operations within regions of code that tend to generate cache... |
| 6415433 |
Method and system for identifying locations to move portions of the computer program |
| Jul-2-2002 |
A method system for optimizing a computer program. In one embodiment, the system identifies depths of blocks of a computer program and identifies the availability of expressions of the computer program.... |
| 6367071 |
Compiler optimization techniques for exploiting a zero overhead loop mechanism |
| Apr-2-2002 |
The invention provides compiler loop optimization techniques to take advantage of a zero overhead loop mechanism (ZOLM) in a processor, e.g., a ZOLM in the form of a zero overhead loop buffer (ZOLB). In... |
| 6367070 |
Means and method for establishing loop-level parallelism |
| Apr-2-2002 |
A method for recognizing a parallel executable region within a sequence of source code. The parallel executable region is identified by locating a loop structure within the sequence of source code. The... |
| 6363522 |
Method and apparatus for handling exceptions as normal control flow |
| Mar-26-2002 |
Methods and apparatus for handling exceptions as a part of normal program control flow are disclosed. According to one aspect of the present invention, a method for processing an exception in an object-based... |
| 6363521 |
Process for processing programs, process for detecting depth of frame associated with specified method, detection method, and computer |
| Mar-26-2002 |
The present invention is directed to expanding the scope of execution optimization by method inlining in a language with a security facility such as Java. More particularly, the present invention is directed... |
| 6360360 |
Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects |
| Mar-19-2002 |
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... |
| 6345384 |
Optimized program code generator, a method for compiling a source text and a computer-readable medium for a processor capable of operating with a plurality of instruction sets |
| Feb-5-2002 |
An improved optimization technique is described for a program code for a processor capable of operating on the basis of either one of a plurality of instruction sets in a computer system. The optimization... |
| 6301706 |
Compiler method and apparatus for elimination of redundant speculative computations from innermost loops |
| Oct-9-2001 |
A method and system for use with VLIW processing architectures for avoiding redundant speculative computations in the compilation of the innermost loops. The method includes identifying a plurality of... |
| 6247173 |
Computer compiler optimizer for reducing computer resource consumption during dependence analysis after loop unrolling |
| Jun-12-2001 |
A method and apparatus for improving the process of determining whether two computer system memory references are exactly dependent. While loop unrolling creates a large number of memory reference pairs... |
| 6226790 |
Method for selecting optimal parameters for compiling source code |
| May-1-2001 |
In a computer system, a method for determining an optimal loop interchange, set of register tiling amount, and cache tiling size for compiling source code into object code. The method first constructs... |
| 6173443 |
Method of compiling a loop |
| Jan-9-2001 |
In a method of compiling, the contents of registers corresponding to data arrays having the same array names but having different indexes in sequence with the progress of a loop prior to loop return are... |
| 6151704 |
Method for optimizing a loop in a computer program by speculatively removing loads from within the loop |
| Nov-21-2000 |
A method for optimizing a loop in a computer program. The loop contains at least a first statement that uses a variable. The method includes inserting a second statement that loads the variable. The second... |
| 6148439 |
Nested loop data prefetching using inner loop splitting and next outer loop referencing |
| Nov-14-2000 |
A nested-loop data prefetching method in which a program is converted so that prefetching is performed effectively even in nested loops in which the loop length of the innermost loops is short and the... |
| 6113650 |
Compiler for optimization in generating instruction sequence and compiling method |
| Sep-5-2000 |
A compiler has optimization processing part which comprise a loop normalization processing part for normalizing a loop structure in an intermediate language program, a subscript expression analyzing part... |
| 6074433 |
Optimization control apparatus and optimization control method for array descriptions |
| Jun-13-2000 |
In order to generate optimum codes for array descriptions having a new language specification, an optimization control apparatus or method for array description executes a function of determining a scope... |
| 6070011 |
Compiler for performing a loop fusion, dependent upon loop peeling and/or loop reversal |
| May-30-2000 |
A compile method employs loop fusion to improve execution of a first loop and a second loop in a code sequence. A compile method initially peels one or more loop iterations from one of the loops to cause... |
| 6064820 |
Apparatus and method to incrementally update single static assignment (SSA) form |
| May-16-2000 |
A method and apparatus for incrementally updating SSA form after loop unrolling. The incremental SSA tool generates a non-ambiguous new name, in SSA form, for each original name defined in a loop and used... |
| 6058266 |
Method of, system for, and computer program product for performing weighted loop fusion by an optimizing compiler |
| May-2-2000 |
An integer programming formulation for weighted loop fusion is presented. Loop fusion is a well-known program transformation that has shown to be effective in reducing loop overhead and improving register... |
| 6055371 |
Compile device, compile method and recording medium for recording compiler |
| Apr-25-2000 |
When an object program including loops with conditional branch instructions is generated, information necessary for generation of an object program including an optimum code for high-efficiency execution... |