Code restructuring

CL 717 SC 159
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...
6139200 Register resource allocation feedback
Oct-31-2000 Techniques for allocating registers when generating code is described. A snapshot is generated when generating code. The snapshot contains sufficient information to restore the state of generating code...
6139199 Fast just-in-time (JIT) scheduler
Oct-31-2000 A just-in-time (JIT) compiler typically generates code from bytecodes that have a sequence of assembly instructions forming a "template". It has been discovered that a just-in-time (JIT) compiler generates...
6128775 Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler
Oct-3-2000 A method, system, and computer program product for performing register promotion, that optimizes placement of load and store operations of a computer program within a compiler. Based on the observation...
6101326 Method and apparatus for frame elimination for simple procedures with tail calls
Aug-8-2000 The invention relates to a method and apparatus for stack frame elimination for simple procedures with tail calls. Subject to certain prerequisite constraints, the invention modifies the procedure by converting...
6092180 Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed
Jul-18-2000 In a method for scheduling instructions executed in a computer system including a processor and a memory subsystem, pipeline latencies and resource utilization are measured by sampling hardware while the...
6090156 System for local context spilling for graph coloring register allocators
Jul-18-2000 A register allocator for allocating machine registers during compilation of a computer program. The register allocator performs the steps of building an interference graph, reducing the graph using graph...
6078744 Method and apparatus for improving compiler performance during subsequent compilations of a source program
Jun-20-2000 Apparatus, methods, and computer program products are disclosed for improving the performance of subsequent compilations of a source program. The initial compilation of the source program journals computationally...
6077315 Compiling system and method for partially reconfigurable computing
Jun-20-2000 A compiling system and method generates a sequence of program instructions for use in a partially reconfigurable processing unit, a portion of the processing unit having a hardware organization that is...
6077314 Method of, system for, and computer program product for providing improved code motion and code redundancy removal using extended global value numbering
Jun-20-2000 Code motion and redundancy removal based on an Extended Global Value Numbering technique which performs value numbering beyond basic blocks and extended basic blocks. Full redundancies and partial redundancies...
6072952 Method and apparatus for coalescing variables
Jun-6-2000 A method and apparatus for improving the process of software development by a fast coalescing compiler optimizer tool that operates with one compiler pass. The present invention is a software development...
6072951 Profile driven optimization of frequently executed paths with inlining of code fragment (one or more lines of code from a child procedure to a parent procedure)
Jun-6-2000 A compiler and method of compiling provide enhanced performance by inlining one or more frequently executed paths through a child procedure into a parent procedure without inlining the entire child procedure....
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...
6070009 Method for estimating execution rates of program execution paths
May-30-2000 A method is provided for estimating execution rates of program executions paths. The method samples path-identifying state information of selected instructions while executing the program in a processor....
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...
6064819 Control flow and memory management optimization
May-16-2000 Selected code is modeled in a polyhedral dependency graph (PDG). A placement optimizer maps each element of the PDG to an optimally placed PDG. An ordering optimizer maps the placed PDG to an optimally...
6064818 Straight path optimization for compilers
May-16-2000 A pragma is defined to indicate straight path optimization for compilers (SPOC). The pragma is inserted into source code to identify the most common case for a branch point in a program flow, determined...
6044223 Object code allocation in multiple systems
Mar-28-2000 This invention relates to the allocation of object code in multi-processor systems. In particular, techniques are disclosed for efficiently allocating signal processing instructions to a large array of...
6035124 Method of, system for, and computer program product for providing extended global value numbering
Mar-7-2000 A fast and efficient way of performing extended global value numbering beyond basic blocks and extended basic blocks on a complete topological ordering of basic blocks in a program. Global value numbering...
6035122 Compiler for converting source program into object program having instruction with commit condition
Mar-7-2000 A processing device executes an instruction speculatively, and execution result of the instruction becomes valid when all the predictions about true/false of branch condition are correct, and the instruction...
6029004 Method and apparatus for modular reordering of portions of a computer program based on profile data
Feb-22-2000 An apparatus and method reorder portions of a computer program in a way that achieves both enhanced performance and maintainability of the computer program. A global call graph is initially constructed...
6023583 Optimized variable allocation method, optimized variable allocation system and computer-readable memory containing an optimized variable allocation program
Feb-8-2000 An input module reads a source program, and a language translating module performs language translation on the entered source program to generate intermediate code. A dependency relation analyzing module...
6021275 Object code structure and method for translation of architecture independent program implementations
Feb-1-2000 Endian format affects the representation of both literal data and pointer data whether represented in a global data specification (i.e., in a data section) or as immediate operand values in-line with Intercode...
6014518 Terminating polymorphic type inference program analysis
Jan-11-2000 A terminating polymorphic type inference program analysis helps to better optimize, understand, and/or browse computer programs. The analysis represents parameter values for each function call in the program...
6002879 Method for performing common subexpression elimination on a rack-N static single assignment language
Dec-14-1999 Briefly, in one embodiment, the invention is a method for eliminating common subexpressions in an initial SSA intermediate language representation of at least a portion of a computer program. The method...
5999739 Method and apparatus for elimination of redundant branch instructions from a program
Dec-7-1999 The procedure of the invention eliminates redundant conditional branch statements (CBSs) from a program, wherein the program includes (i) plural blocks of program statements, (ii) a definition statement...
5999736 Optimizing code by exploiting speculation and predication with a cost-benefit data flow analysis based on path profiling information
Dec-7-1999 A method and apparatus for optimizing execution of code is disclosed. The code is executed to generate path profiling information. At least one location is identified for relocating at least one of the...
5987257 Metafile optimization
Nov-16-1999 The specification describes a program used to optimize journal files such as metafiles used in the Microsoft.RTM. Windows.RTM. programming environment. The program steps through instructions from the original...
5978588 Method and apparatus for profile-based code placement using a minimum cut set of the control flow graph
Nov-2-1999 A method and apparatus placing blocks of object code by a compiler. The code placement is done optimally, using a "cut set technique" that uses the "max-flow/min-cut" principle. A preferred embodiment...
5978587 Method for propagating source code locations into objects in a compiler
Nov-2-1999 An object-oriented apparatus in the memory of a computer system for propagating source code locations into objects in a compiler. The apparatus has three types. The first is a source object type, of which...
5966534 Method for compiling high level programming languages into an integrated processor with reconfigurable logic
Oct-12-1999 A method is presented for automatically compiling a high level computer program down into an application specific integrated circuit coupled with a generic microprocessor. The original source code is written...
5950009 Method and apparatus for profile-based reordering of program portions in a computer program
Sep-7-1999 An apparatus and several methods provide for a more optimized computer program that will have a faster execution time than was possible using the prior art reordering technique that adds to a trace until...
5946491 Register allocation method and apparatus for gernerating spill code as a function of register pressure compared to dual thresholds
Aug-31-1999 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,...
5940622 Systems and methods for code replicating for optimized execution time
Aug-17-1999 An optimizer that reduces execution time of computer code and a system and method that optimizes an execution time for a sequence of instruction blocks in a processor. The optimizer includes: (1) a parsing...
5937196 Compiling with partial copy propagation
Aug-10-1999 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...
5937195 Global control flow treatment of predicated code
Aug-10-1999 The relationships among predicates are tracked globally by uniformly treating both control flow and explicit predicates by mapping them to a single connected partition graph. This allows for the analysis...
5933644 Method and apparatus for conflict-based block reordering
Aug-3-1999 A method and apparatus for ordering blocks of code by a compiler. The compiler generates a conflict graph in accordance with the blocks of a computer program being compiled. Once the conflict graph is...
5930509 Method and apparatus for performing binary translation
Jul-27-1999 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,...
5923883 Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations
Jul-13-1999 The basic block division unit 2 divides the instruction sequence into basic blocks which are sequences with a continuous execution order. The control flow analysis unit 3 analyzes the control flow between...
5920723 Compiler with inter-modular procedure optimization
Jul-6-1999 A compiler method is adapted to be executed by a computer with limited memory, yet enables cross-CU optimization during the conversion of a source code listing to an object code listing. The compiler method...
5920722 System and process for efficiently determining absolute memory addresses for an intermediate code model
Jul-6-1999 A system and process for efficiently determining absolute addresses for an intermediate code model of an address space are described. A processor interfaces to a main memory comprising a plurality of addressable...
5920721 Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments
Jul-6-1999 A compiler-loader system enables the creation of different loaded executable images in target computers complying with different versions of an instruction-set architecture, the different images being...
5905895 Method and system for optimizing non-native bytecodes before bytecode interpretation
May-18-1999 A method and system for optimizing Java bytecodes before bytecode interpretation within a computer system is disclosed. In accordance with the method and system of the present invention, a first bytecode...
5901317 Method and system for register allocation using multiple interference graphs
May-4-1999 Allocation of real registers to virtual or symbolic registers represented by nodes in an interference graph is performed with a compiler using a primary interference graph and a secondary interference...
5890000 Cooperation of global and local register allocators for better handling of procedures
Mar-30-1999 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...
5857105 Compiler for reducing number of indirect calls in an executable code
Jan-5-1999 A compiler method converts an indirect call to a callee routine in a caller routine program listing, to an in-line listing of, or a direct call to, the callee routine in the caller routine. An indirect...
5854935 Program transformation system for microcomputer and microcomputer employing transformed program
Dec-29-1998 An optimization compiler performs computation of hamming's distance between address of respective instruction of the temporarily arranged program string and a next execution address after temporary arrangement...
5854929 Method of generating code for programmable processors, code generator and application thereof
Dec-29-1998 The present invention concerns a method of generating code for a programmable processor and comprises several steps. The first step is representing the processor as a directed bipartite graph with first...
5850553 Reducing the number of executed branch instructions in a code sequence
Dec-15-1998 A compiler technique for reducing the number of executed branches in a code sequence. Multiple condition branch instructions in a program sequence are replaced with a single combined conditional branch...
5850552 Optimization apparatus for removing hazards by arranging instruction order
Dec-15-1998 An optimization apparatus is provided for removing hazards from a program by rearranging instructions for each program segment. The apparatus comprises: a Directed Acyclic Graph (DAG) generating means...