| 5850549 |
Global variable coalescing |
| Dec-15-1998 |
An interprocedural compilation method for aggregating global data variables in external storage to maximize data locality. Using the information displayed in a weighted interference graph in which node... |
| 5848275 |
Compiler having automatic common blocks of memory splitting |
| Dec-8-1998 |
In a computer system having a cache memory and a main memory for storing data, a method for laying out blocks of data to minimize a number of memory transfers between the cache memory and the main memory.... |
| 5845127 |
Language processor and language processing method to generate object programs by compiling source programs |
| Dec-1-1998 |
A language processor for source program compiling and object file generation provided with a function call counter section to count the number of calls for each function during syntax analysis, a function... |
| 5842021 |
Optimizer |
| Nov-24-1998 |
The definition and use information of a constant hold variable are caused to be stored in a constant hold variable information hold unit 6 by a constant hold variable definition detection unit 7 and a... |
| 5842017 |
Method and apparatus for forming a translation unit |
| Nov-24-1998 |
A computer system for executing a binary image conversion system which converts instructions from a instruction set of a first, non native computer system to a second, different, native computer system,... |
| 5836014 |
Method of constructing a constant-folding mechanism in a multilanguage optimizing compiler |
| Nov-10-1998 |
A compiler framework comprises a generic compiler back end which may be used by a plurality of front ends to generate object code for a target computer system. Each front end scans and parses a source... |
| 5835776 |
Method and apparatus for instruction scheduling in an optimizing compiler for minimizing overhead instructions |
| Nov-10-1998 |
Apparatus and methods are disclosed for scheduling target program instructions during the code optimization pass of an optimizing compiler. Most modern microprocessors have the ability to issue multiple... |
| 5835771 |
Method and apparatus for generating inline code using template metaprograms |
| Nov-10-1998 |
The present invention provides the capability to generate customized, inlined code or expression objects using template metaprograms. The code or expression object is created at compile time using template... |
| 5828886 |
Compiling apparatus and method for promoting an optimization effect of a program |
| Oct-27-1998 |
A compiling apparatus and method in which instructions are scheduled for an efficient parallel process with a register allotting process and an instruction scheduling process performed independently of... |
| 5815720 |
Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system |
| Sep-29-1998 |
Dynamic translation is used to produce profile information used to optimize object code for an application. In order to produce optimized object code for the application, source code for the application... |
| 5815719 |
Method and apparatus for easy insertion of assembler code for optimization |
| Sep-29-1998 |
Small assembly code routines are inlined with source code prior to optimization processing in a compiler in a data processing system. Each assembly code routine is presented to the compiler in the form... |
| 5812855 |
System and method for constaint propagation cloning for unknown edges in IPA |
| Sep-22-1998 |
The present invention provides a system and method for solving interprocedural problems on incomplete call graphs. For a given program, the present invention constructs a standard call graph on which the... |
| 5812854 |
Mechanism for integrating user-defined instructions with compiler-generated instructions and for optimizing the integrated instruction stream |
| Sep-22-1998 |
According to the preferred embodiment of the present invention, an apparatus and method for integrating a user-defined instruction stream with a compiler-generated instruction stream is provided. The method... |
| 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... |
| 5805894 |
Method inside an optimizing compiler for analyzing assertions and redirecting control flow in programs |
| Sep-8-1998 |
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... |
| 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.... |
| 5797012 |
Connectivity based program partitioning |
| Aug-18-1998 |
A method for partitioning programs into multi-procedure modules for efficient compilation. During interprocedural analysis, a weighted callgraph of the program is constructed in which weights on nodes... |
| 5790867 |
Compiler with extended redundant copy elimination |
| Aug-4-1998 |
A compiler and method of compiling provide extended redundant copy elimination by eliminating copy statements having provably equivalent data items when it is determined that the defined operand of a copy... |
| 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... |
| 5790865 |
Method and apparatus for reordering components of computer programs |
| Aug-4-1998 |
A method and system for reordering sections of a computer program are disclosed. The computer program is executed during an experimental execution period. During the execution period, an access record... |
| 5790862 |
Resource assigning apparatus which assigns the variable in a program to resources |
| Aug-4-1998 |
A resource assigning apparatus which generates assignments which are combinations of variables and their respective live ranges, which investigates, for each assignment, other assignments with live ranges... |
| 5787287 |
Representation of control flow and data dependence for machine |
| Jul-28-1998 |
A method of representing data dependence and control flow between two instructions in computer-executable instructions. Each instruction is for reading or writing a variable. The sequence of instructions... |
| 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... |
| 5778233 |
Method and apparatus for enabling global compiler optimizations in the presence of exception handlers within a computer program |
| Jul-7-1998 |
A method and apparatus allows a compiler to optimize code in the presence of exception handlers. According to a first embodiment, arcs are added to a control flow graph, prior to performing global optimizations,... |
| 5768596 |
System and method to efficiently represent aliases and indirect memory operations in static single assignment form during compilation |
| Jun-16-1998 |
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... |
| 5768595 |
System and method for recompiling computer programs for enhanced optimization |
| Jun-16-1998 |
An optimizing compiler for producing executable programs from code, high level languages compiles the code whilst generating data from which a callgraph may be constructed, and then recompiles the procedures... |
| 5768594 |
Methods and means for scheduling parallel processors |
| Jun-16-1998 |
Parallel processing is performed by determining sequential ordering of tasks for processing, assigning priorities to the tasks available on the basis of the sequential ordering, selecting a number of tasks... |
| 5764994 |
Method and system for compressing compiled microcode to be executed within a data processing system |
| Jun-9-1998 |
A method for compressing a set of compiled microcode to be utilized within a data processing system is disclosed. In accordance with the method and system of the present invention, all branch instructions... |
| 5761515 |
Branch on cache hit/miss for compiler-assisted miss delay tolerance |
| Jun-2-1998 |
In a computer system having a hierarchical memory, the problem of tolerating cache miss latency is solved by dynamically switching appropriately between two different code sequences, one optimized at compile-time,... |
| 5761514 |
Register allocation method and apparatus for truncating runaway lifetimes of program variables in a computer system |
| Jun-2-1998 |
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... |
| 5758164 |
Method and system for processing language |
| May-26-1998 |
In a language processing system for translating a source program into a machine program, a range of the source program to be optimized is discriminated during parsing to generate an optimization enabling... |
| 5758163 |
Method and apparatus for record fields usage checking at compile time |
| May-26-1998 |
A method and apparatus for checking for portions of record variables that are referenced before they are assigned a value. This checking occurs in the semantic checking portion of a compiler for a high... |
| 5752038 |
Method and system for determining an optimal placement order for code portions within a module |
| May-12-1998 |
A method and system for determining an optimal placement order for code portions within a module to improve locality of reference and reduce the working set of the module are provided. The optimal placement... |
| 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... |
| 5740447 |
Branch instruction optimizing process system in linkage editor |
| Apr-14-1998 |
A branch instruction optimizing process system which performs optimization of code length of branch instruction for branching between modules includes a locating portion for locating a plurality of segments... |
| 5740446 |
Compiling device and compiling method |
| Apr-14-1998 |
A compiling method includes a step of performing lexical analysis by entering a source program, a step of performing analysis of the initial value of variables described in the source program, and a step... |
| 5734908 |
System and method for optimizing a source code representation as a function of resource utilization |
| Mar-31-1998 |
A system and method for optimizing a source code representation comprising a plurality of basic blocks are described. The optimized source code representation is to be executed in a target machine. The... |
| 5710927 |
Method of replacing lvalues by variables in programs containing nested aggregates in an optimizing compiler |
| Jan-20-1998 |
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... |
| 5701489 |
System for partial in-line expansion of procedure calls during program compilation |
| Dec-23-1997 |
A system for the in-line expansion of a portion of the program body otherwise rejected as too expensive for full in-line expansion during intermediate code optimization by a compiler. The partial in-lining... |
| 5659754 |
Method and apparatus for an improved optimizing compiler |
| Aug-19-1997 |
An optimizing compiler process and apparatus is disclosed for more accurately and efficiently identifying live variable sets in a portion of a target computer program, so as to more efficiently allocate... |
| 5649203 |
Translating, executing, and re-translating a computer program for finding and translating program code at unknown program addresses |
| Jul-15-1997 |
A program is translated by automatically generating a flowgraph, using the flowgraph to analyze the program to provide information about blocks of instructions in the flowgraph, and then using the flowgraph... |
| 5613117 |
Optimizing compiler using templates corresponding to portions of an intermediate language graph to determine an order of evaluation and to allocate lifetimes to temporary names for variables |
| Mar-18-1997 |
A compiler framework uses a generic "shell" and a generic back end (where the code generator is target-specific). The generic back end provides the functions of optimization, register and memory allocation,... |
| 5606697 |
Compiler system for language processing program |
| Feb-25-1997 |
A compiler includes an optimizing function combination table, so that a plurality of optimization processing are carried out in accordance with different combinations of optimizing functions in the combination... |
| 5598561 |
Optimizing compiler which generates multiple instruction streams to be executed in parallel |
| Jan-28-1997 |
In a compiler which produces an object program from a source program, the automatic parallelization unit is comprised of the parallelizing intermediate code detection unit which detects an intermediate... |
| 5598560 |
Tracking condition codes in translation code for different machine architectures |
| Jan-28-1997 |
A code translator, constructed similar to a compiler, accepts as an input to be translated the assembly code written for one architecture (e.g., VAX), and produces as an output object code for a different... |
| 5586020 |
Program transformation processing system and method |
| Dec-17-1996 |
A program transformation processing system comprises a syntax analyzing part receiving a source program for analyzing the syntax of the received source program and generating intermediate codes in a predetermined... |
| 5561803 |
Computer program product and program storage device for incremental processing of computer objects |
| Oct-1-1996 |
Method and system for incrementally processing a source representation of a set of objects into intermediate representation is disclosed. The invention is used after the objects have been processed once... |
| 5555417 |
Method and apparatus for compiling computer programs with interprocedural register allocation |
| Sep-10-1996 |
Optimization techniques are implemented by means of a program analyzer used in connection with a program compiler to optimize usage of limited register resources in a computer processor. The first optimization... |
| 5555412 |
Complier and method for alias checking in a complier |
| Sep-10-1996 |
An aliasing method and apparatus carried out on a digital computer are provided for generating an object code from a source program. An aliasing data structure is defined and includes an initial empty... |