Code restructuring

CL 717 SC 159
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...