U.S. patents available from 1976 to present.
U.S. patent applications available from 2005 to present.

Icon_funbox Did You Know...

...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!

Newsletter  PatentStorm News

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.

 

Class 717/159 - Code restructuring


Subclass of Class 717 - Data processing: software development, installation, and management
Definition: Subject matter wherein all or portions of a program code
No. of patents: 457
Last issue date: 04/24/2012


              9        
NumberTitleIssue Date
6487716Methods 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
6470493Computer 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
6463521Opcode 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
6408433Method 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
6360361Field 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
6351849Compiler 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
6301700Method 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
6295644Method 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
6292934Method 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
6282707Program 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
6282708Method 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
6247174Optimization 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
6243864Compiler 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
6182284Method 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
6175957Method 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
6173444Optimizing 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
6158048Method 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
6151704Method 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
6139199Fast 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
6139200Register 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
6128775Method, 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
6101326Method 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
6092180Method 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
6090156System 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
6077315Compiling 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
6077314Method 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
6078744Method 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
6072952Method 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
6072951Profile 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
6070011Compiler 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
6070009Method 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
6064820Apparatus 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
6064819Control 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
6064818Straight 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
6044223Object 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
6035124Method 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
6035122Compiler 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
6029004Method 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
6023583Optimized 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
6021275Object 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
              9        
 
Sign InRegister
Username  
Password   
forgot password?