Code restructuring

CL 717 SC 159
6691307 Interpreter optimization for native endianness
Feb-10-2004 A method for interpreter optimization includes receiving multiple data units organized according to a first endian order, reordering the data units according to a second endian order and interpreting the...
6681388 Method and compiler for rearranging array data into sub-arrays of consecutively-addressed elements for distribution processing
Jan-20-2004 In a data rearranging method for performing a distribution processing of an array in a multi processor system including a plurality of processors each of which has an independent memory, there are included...
6678886 Apparatus and method for generating optimization objects
Jan-13-2004 A system and method enable appropriately concentrating instruction strings or data pieces sporadically present in a plurality of regions over more than one compilation unit and adjusting the front-and-rear...
6668373 System, apparatus and method for expanding the range of decimal numbers of any length in existing data bases and computer programs
Dec-23-2003 A system, apparatus and method for modifying the machine code of an existing computer program to use a hybrid base-ten number system and corresponding hybrid arithmetic that replaces and processes all...
6665866 Extensible compiler utilizing a plurality of question handlers
Dec-16-2003 A compiler architecture uses a question and answer methodology between a reduction engine and nodes of a graph representing the program being compiled to provide for easy expandability of the compiler....
6658492 System and method for reducing the footprint of preloaded classes
Dec-2-2003 A method and system that reduces the space allocated for internal data structures by a runtime engine. The internal data structures store member information for preloaded classes used by applications executed...
6654953 Extending program languages with source-program attribute tags
Nov-25-2003 Attribute tags embedded in the statements of a source program system extend a programming language. A compiler for the program includes an interface to detect the attribute tags and to call one of a number...
6651247 Method, apparatus, and product for optimizing compiler with rotating register assignment to modulo scheduled code in SSA form
Nov-18-2003 In a computer having rotating registers, a schedule-assigner for allocating the rotating registers. The scheduler-assigner includes a software-pipelined instruction scheduler that generates a first software-pipelined...
6651245 System and method for insertion of prefetch instructions by a compiler
Nov-18-2003 The present invention discloses a method and device for placing prefetch instruction in a low-level or assembly code instruction stream. It involves the use of a new concept called a martyr memory operation....
6637026 Instruction reducing predicate copy
Oct-21-2003 When compiling software for a processor that supports predication, an alerting instruction can be inserted to alert a global register allocator to map particular virtual predicates into the same physical...
6634023 Compile method, exception handling method and computer
Oct-14-2003 The present invention enables re-ordering of instructions to be executed while assuring a precise exception. In Java language, an optimization process of re-ordering instructions to be executed is performed...
6631514 Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations
Oct-7-2003 The inventive emulator dynamically translates instructions in code written for a first architecture into code for a second architecture. The emulator designates various checkpoints in the original code,...
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....
6629314 Management of reuse invalidation buffer for computation reuse
Sep-30-2003 A mechanism for maintaining reuse invalidation information includes a reuse buffer and a reuse invalidation buffer. The reuse buffer stores multiple instances of the reuse region. Each instance stored...
6625798 Method for translating conditional expressions from a non-verilog hardware description language to verilog hardware description language while preserving structure suitable for logic synthesis
Sep-23-2003 A methodology for translating multiple bit conditional expressions of a non-Verilog hardware description language (HDL) program, not readily recognized by Verilog HDL, which can then be used to realize...
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,...
6609248 Cross module representation of heterogeneous programs
Aug-19-2003 An output translator provides for cross module representations of components within a heterogeneous program by translating modifying a platform-neutral intermediate representation (IR) of the program into...
6594824 Profile driven code motion and scheduling
Jul-15-2003 A method and apparatus for generating an optimized intermediate representation of source code for a computer program are described. An initial intermediate representation is extracted from the source code...
6591416 Interpreting functions utilizing a hybrid of virtual and native machine instructions
Jul-8-2003 Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native...
6591415 Polymorphic code generation method and system therefor
Jul-8-2003 A method and system for producing multiple copies of an executable software object, in which a copy is functionally identical to all other copies while being structurally unique, alter the source code...
6564374 Method and apparatus for employing cognitive compares in compare statement sequences
May-13-2003 A compare sequence is executed at least once, and the results of that execution are used to modify the compare sequence for a subsequent execution of the compare sequence. In a preferred embodiment, the...
6564373 Instruction execution mechanism
May-13-2003 On completion of execution of a current block of instructions, a block completion process searches for potential successor blocks, using block descriptors and egress data structures. For each potential...
6560775 Branch preparation
May-6-2003 A method and system for preparing branch instruction of a computer program, for compiling and execution in a computer system, in which each transfer instruction is split into two instructions: a control...
6550059 Method for generating optimized vector instructions from high level programming languages
Apr-15-2003 A method for compiling source code to produce vector instructions, wherein parallel operands are placed in adjacent locations in memory and wherein the realignment of the operands is minimized. One embodiment...
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...
6532532 Instruction execution mechanism
Mar-11-2003 A computer system in which blocks of source code instructions are translated into blocks of target code instructions and executed. During execution, the system builds up dynamic behavior information about...
6530079 Method for optimizing locks in computer programs
Mar-4-2003 A method and several variants for using information about the scope of access of objects acted upon by mutual exclusion, or mutex, locks to transform a computer program by eliminating locking operations...
6519768 Instruction translation method
Feb-11-2003 A method of translating source code instructions into target code instructions is described. Prior to translate time, an existing interpreter is analyzed to identify sequences that implement individual...
6516463 Method for removing dependent store-load pair from critical path
Feb-4-2003 A method, implemented by a compiler, for removing a store-load dependency from a critical path utilizes a compare address operation to determine at run time whether dependency actual exists. The operand...
6516462 Cache miss saving for speculation load operation
Feb-4-2003 Compiler optimization methods and systems for preventing delays associated with a speculative load operation on a data when the data is not in the data cache of a processor. A compiler optimizer analyzes...
6513156 Interpreting functions utilizing a hybrid of virtual and native machine instructions
Jan-28-2003 Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native...
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...
6487716 Methods and apparatus for optimizing programs in the presence of exceptions
Nov-26-2002 A method and several variants are provided for analyzing and transforming a computer program such that instructions may be reordered even across instructions that may throw an exception, while strictly...
6487715 Dynamic code motion optimization and path tracing
Nov-26-2002 A method of reordering instructions. Barrier instructions are determined. The method determines when a processor stall may occur, and hoists subsequent instructions to fill in the stall time. However,...
6470493 Computer method and apparatus for safe instrumentation of reverse executable program modules
Oct-22-2002 Computer method and apparatus allows instrumentation of program modules while maintaining exception-handling unwinding context. In the case of instrumenting procedure prologues, the invention preserves...
6408433 Method and apparatus for building calling convention prolog and epilog code using a register allocator
Jun-18-2002 Methods and apparatus for enabling a register allocator to build a calling convention are disclosed. According to one aspect of the present invention, a computer-implemented method for generating code...
6360361 Field reordering to optimize cache utilization
Mar-19-2002 Fields which are individually addressable data elements in data structures are reordered to improve the efficiency of cache line access. Temporal data regarding the referencing of such fields is obtained,...
6351849 Compiler optimization through combining of memory operations
Feb-26-2002 A method for compiling comprising receiving a source program having a number of memory operation blocks that are mutually exclusive. Each of the memory operation blocks have a memory operation, such that...
6314561 Intelligent cache management mechanism
Nov-6-2001 The data cache management mechanism of the present invention is created by an optimizing compiler. The optimizing compiler intelligently places non-blocking preload instructions into the instruction stream...
6301700 Method and apparatus for slicing class hierarchies
Oct-9-2001 Given a class hierarchy (a collection of classes and inheritance relations among them) and a program P that uses the hierarchy, a slice of the class hierarchy is computed with respect to the program by...
6295644 Method and apparatus for patching program text to improve performance of applications
Sep-25-2001 The present invention relates to a method and an apparatus for patching program text to improve performance of applications running on a computer through the elimination of table lookup and emulation.
6292934 Method and system for improving the locality of memory references during execution of a computer program
Sep-18-2001 The present invention provides a method and system for determining an optimal placement order for basic blocks within a computer program to improve locality of reference and reduce the working set of the...
6282708 Method and processor for structuring a multi-instruction computer program in an internal directed acyclic graph
Aug-28-2001 A method for structuring a multi-instruction computer program as containing a plurality of basic blocks, that each compose from internal instructions and external jumps organised in an internal directed...
6282707 Program transformation method and program transformation system
Aug-28-2001 A program transformation method for transforming a source program described by a programming language into an object program described by a language executable by a data processing system, includes a process...
6247174 Optimization of source code with embedded machine instructions
Jun-12-2001 A software mechanism for enabling a programmer to embed selected machine instructions into program source code in a convenient fashion, and optionally restricting the re-ordering of such instructions by...
6243864 Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths
Jun-5-2001 Internal variables generated by a compiler are assigned to machine resources such as registers and memory by the resource assigning unit 11, and when the assembler code generation unit 18 has outputted...
6182284 Method and system for eliminating phi instruction resource interferences and redundant copy instructions from static-single-assignment-form computer code
Jan-30-2001 A method and system for detecting and eliminating interferences between resources in SSA-form .phi.-instructions so that an optimizing compiler can translate optimized SSA-form code back to non-SSA-form...
6175957 Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring
Jan-16-2001 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...
6173444 Optimizing compilation of pointer variables in the presence of indirect function calls
Jan-9-2001 Effective use of optimizing techniques during compilation is difficult in programs that make liberal use of pointers or indirect function calls. The indirection often means that the compiler cannot precisely...
6158048 Method for eliminating common subexpressions from java byte codes
Dec-5-2000 Compilers are tools that generate efficient mappings from programs to machines. A Java "Just-In-Time" runs as part of an application, and as such, it must be fast and efficient in its use of memory. To...