...that Thomas Edison's patent application on his phonograph was approved by the Patent Office in just seven weeks? In contrast, it took Gordon Gould, the inventor of the laser, 30 years to obtain his patent -- finally awarded in 1988!
Make the Most of Our Site
See this month's Top Inventors and Most Cited Patents.
Stay on top of the latest innovations by subscribing to an RSS feed.
Registered users: Manage your profile.
| Number | Title | Issue Date |
| 6487716 | Methods and apparatus for optimizing programs in the presence of exceptions 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 preserving the precise exception semantics of the ori... | 11/26/2002 |
| 6470493 | Computer method and apparatus for safe instrumentation of reverse executable program modules 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 the calling context. A sanitized copy of the prologue... | 10/22/2002 |
| 6463521 | Opcode numbering for meta-data encoding A method for including opcode information in an opcode includes numbering the opcode such that a property of the opcode is represented by at least one bit of the opcode. According to one aspect, the number of data units required to advance to the next opc... | 10/08/2002 |
| 6408433 | Method and apparatus for building calling convention prolog and epilog code using a register allocator 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 associated with a calling convention includes obtainin... | 06/18/2002 |
| 6360361 | Field reordering to optimize cache utilization 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, and a tool is used to construct a field affinity g... | 03/19/2002 |
| 6351849 | Compiler optimization through combining of memory operations 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 the memory operation in each block is associated wi... | 02/26/2002 |
| 6301700 | Method and apparatus for slicing class hierarchies 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 eliminating from the hierarchy those data members, me... | 10/09/2001 |
| 6295644 | Method and apparatus for patching program text to improve performance of applications 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.... | 09/25/2001 |
| 6292934 | Method and system for improving the locality of memory references during execution of a computer program 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 computer program. By reducing the working set, the ... | 09/18/2001 |
| 6282707 | Program transformation method and program transformation system 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 of transforming at least a part of procedure, f... | 08/28/2001 |
| 6282708 | Method and processor for structuring a multi-instruction computer program in an internal directed acyclic graph 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 acyclic graph. A guarding is executed on successor i... | 08/28/2001 |
| 6247174 | Optimization of source code with embedded machine instructions 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 the compiler without making any significant modifica... | 06/12/2001 |
| 6243864 | Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths 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 an instruction sequence, the alias accessibility anal... | 06/05/2001 |
| 6182284 | Method and system for eliminating phi instruction resource interferences and redundant copy instructions from static-single-assignment-form computer code A method and system for detecting and eliminating interferences between resources in SSA-form $c;-instructions so that an optimizing compiler can translate optimized SSA-form code back to non-SSA-form code. The method traverses the control flow graph a... | 01/30/2001 |
| 6175957 | Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring 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 this PEG to reduce estimated memory overhead co... | 01/16/2001 |
| 6173444 | Optimizing compilation of pointer variables in the presence of indirect function calls 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 determine the set of objects pointed to by a po... | 01/09/2001 |
| 6158048 | Method for eliminating common subexpressions from java byte codes 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 achieve good performance and further optimize code ge... | 12/05/2000 |
| 6151704 | Method for optimizing a loop in a computer program by speculatively removing loads from within the loop 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 statement is inserted prior to the loop. The meth... | 11/21/2000 |
| 6139199 | Fast just-in-time (JIT) scheduler 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 a small number, approximately 2.3, assembly instr... | 10/31/2000 |
| 6139200 | Register resource allocation feedback 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 that existed at the point when the snapshot was gener... | 10/31/2000 |
| 6128775 | Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler 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 that the circumstances for promoting a memory locatio... | 10/03/2000 |
| 6101326 | Method and apparatus for frame elimination for simple procedures with tail calls 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 all tail calls to direct branches. The code ... | 08/08/2000 |
| 6092180 | Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed 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 instructions are executing. The instructions are th... | 07/18/2000 |
| 6090156 | System for local context spilling for graph coloring register allocators 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 coloring techniques, attempting to assign colors (i... | 07/18/2000 |
| 6077315 | Compiling system and method for partially reconfigurable computing 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 selectively reconfigurable during execution of the se... | 06/20/2000 |
| 6077314 | Method of, system for, and computer program product for providing improved code motion and code redundancy removal using extended global value numbering 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 are identified and iteratively processed unti... | 06/20/2000 |
| 6078744 | Method and apparatus for improving compiler performance during subsequent compilations of a source program 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 expensive intermediate compilation data. S... | 06/20/2000 |
| 6072952 | Method and apparatus for coalescing variables 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 tool for optimization that analyzes one or more ins... | 06/06/2000 |
| 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) 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. Accordingly, a substantial improvement in spee... | 06/06/2000 |
| 6070011 | Compiler for performing a loop fusion, dependent upon loop peeling and/or loop reversal 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 each of the loops to exhibit an equal number of loo... | 05/30/2000 |
| 6070009 | Method for estimating execution rates of program execution paths 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. A control flow graph of the program is supplied, th... | 05/30/2000 |
| 6064820 | Apparatus and method to incrementally update single static assignment (SSA) form 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 outside of the loop after loop unrolling, by using... | 05/16/2000 |
| 6064819 | Control flow and memory management optimization 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 ordered PDG. The PDG, place PDG, and ordered PDG are ... | 05/16/2000 |
| 6064818 | Straight path optimization for compilers 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 by analysis of performance data or simple prediction... | 05/16/2000 |
| 6044223 | Object code allocation in multiple systems 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 parallel signal processing units.... | 03/28/2000 |
| 6035124 | Method of, system for, and computer program product for providing extended global value numbering 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 is further extended with a Value Number List, an o... | 03/07/2000 |
| 6035122 | Compiler for converting source program into object program having instruction with commit condition 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 has a commit condition indicating the number of... | 03/07/2000 |
| 6029004 | Method and apparatus for modular reordering of portions of a computer program based on profile data 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 that includes profile data. From the information in t... | 02/22/2000 |
| 6023583 | Optimized variable allocation method, optimized variable allocation system and computer-readable memory containing an optimized variable allocation program 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 analyzes a dependency relation among the functions ... | 02/08/2000 |
| 6021275 | Object code structure and method for translation of architecture independent program implementations 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 instructions. The present invention provides ... | 02/01/2000 |