Using flow graph

CL 717 SC 156
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...
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...
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...
6058266 Method of, system for, and computer program product for performing weighted loop fusion by an optimizing compiler
May-2-2000 An integer programming formulation for weighted loop fusion is presented. Loop fusion is a well-known program transformation that has shown to be effective in reducing loop overhead and improving register...
6045585 Method and system for determining inter-compilation unit alias information
Apr-4-2000 A system and method for determining alias information at the inter-compilation unit level of a compilation process includes the steps of determining anti-alias sets from the alias information provided...
6044222 System, method, and program product for loop instruction scheduling hardware lookahead
Mar-28-2000 Improved scheduling of instructions within a loop for execution by a computer system having hardware lookahead is provided. A dependence graph is constructed which contains all the nodes of a dependence...
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...
6035123 Determining hardware complexity of software operations
Mar-7-2000 A new class of general purpose computers called Programmable Reduced Instruction Set Computers (PRISC) use RISC techniques a basis for operation. In addition to the conventional RISC instructions, PRISC...
6014513 Discovering code and data in a binary executable program
Jan-11-2000 A computer software tool used for automatically identifying code portions and data portions of a binary executable software program in which the code portions include machine instructions that are of arbitrary...
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...
5999738 Flexible scheduling of non-speculative instructions
Dec-7-1999 A technique for flexible scheduling of a code sequence wherein a set of instructions for determining a a fully-resolved predicate for each of a set of non-speculative instructions contained in the code...
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...
5978586 Method for tracking changes in source locations in a compiler
Nov-2-1999 The disclosed method creates a source object for each source language element parsed by the compiler and associates each such created source object with objects created from source language elements to...
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...
5946492 Compiler that reduces call stack size through identification of stackless variables
Aug-31-1999 The present invention uses an optimizing compiler to identify what are referred to herein as stackless variables. A variable is said to be stackless for a given call statement if the calling program does...
5940621 Language independent optimal size-based storage allocation
Aug-17-1999 Compiler performance is improved without compromising program correctness by altering the commonly expected ordering that has been used in the past. A more efficient memory image is provided which results...
5940619 Dynamic fine-grained dependency analysis for a functional language
Aug-17-1999 In a computerized method, a computer program is analyzed while the program is interpreted. The program is expressed in a first memory as input values and functions. Some of the input values are complex...
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...
5926639 Embedded flow information for binary manipulation
Jul-20-1999 A method and apparatus for making flow information available for binary manipulation tasks are disclosed. Flow information is generated and saved either by a compiler or by a flow information generator....
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...
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...
5894576 Method and apparatus for instruction scheduling to reduce negative effects of compensation code
Apr-13-1999 A method is described for scheduling an instruction of a computer program. The instruction is scheduled into an active block of the computer program if no compensation copy is necessary, or if any necessary...
5887174 System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
Mar-23-1999 Instructions are scheduled for execution by a processor having a lookahead buffer by identifying an idle slot in a first instruction schedule of a first basic block of instructions, and by rescheduling...
5867711 Method and apparatus for time-reversed instruction scheduling with modulo constraints in an optimizing compiler
Feb-2-1999 Apparatus and methods are disclosed for performing time-reversed scheduling of a data dependency graph representing a target program instruction loop in an optimizing compiler. The instruction scheduling...
5864700 Sequencing and error detection of template instantiations during compilation of C++ Programs
Jan-26-1999 A priority queue is used to sequence template instantiations in compiling C++ programs. If the analysis of a C++ code fragment encounters a name that requires full instantiation and no matching full instantiation...
5862385 Compile method for reducing cache conflict
Jan-19-1999 A compiling method, for use with programs to be executed on a computer with cache memory, which programs would otherwise generate decreased performance due to cache conflicts arising from conflicting cache...
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...
5854926 Method and apparatus for identifying flip-flops in HDL descriptions of circuits without specific templates
Dec-29-1998 A method and apparatus is disclosed for detecting edge-sensitive behavior from HDL descriptions of a circuit and inferring a hardware implementation of that behavior as a generalized edge-triggered D-type...
5852734 Method and compiler for parallel execution of a program
Dec-22-1998 To increase the speed of program execution by decomposing a loop onto a plurality of processors and executing them in parallel. First, a loop in a source program is located which is to be executed in parallel....
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...
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...
5838977 Translating an object graph at run time
Nov-17-1998 The dbX persistent programming language model solves the problem of seamlessly providing an unfragmented, persistible, complex object heap space that extends beyond virtual memory to a program in a host...
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...
5822593 High-level loop fusion
Oct-13-1998 A processor is provided with a software program specifying an overall computation that includes operations. Each operation implies a set of subcomputations, without explicitly specifying a control structure...
5809308 Method and apparatus for efficient determination of an RMII vector for modulo scheduled loops in an optimizing compiler
Sep-15-1998 Apparatus and methods are disclosed for determining a recurrence minimum iteration interval (rmii) vector for use in modulo scheduling target program instructions during the code optimization pass of an...
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...
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...
5790863 Method and system for generating and displaying a computer program
Aug-4-1998 A method and system for generating a computer program. In a preferred embodiment, the present invention provides a program tree editor for directly manipulating a program tree. A program tree comprises...
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...
5778232 Automatic compiler restructuring of COBOL programs into a proc per paragraph model
Jul-7-1998 A compiler for compiling and optimizing a COBOL program. The invention is embodied in a front end that reads the COBOL program and generates an intermediate representation that can be optimized by later...
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...
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...
5671419 Interprocedural data-flow analysis that supports recursion while only performing one flow-sensitive analysis of each procedure
Sep-23-1997 A computer implemented method performs flow-sensitive interprocedural data flow analysis without iteration for a class of interprocedural problems. The accuracy of the solution can approach the iterative...
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...
5652889 Alternate execution and interpretation of computer program having code at unknown locations due to transfer instructions having computed destination addresses
Jul-29-1997 It is not always possible or practical to fully translate an original computer program because execution transfer instructions may have computed destination addresses that cannot be determined until program...
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...
5606698 Method for deriving optimal code schedule sequences from synchronous dataflow graphs
Feb-25-1997 A method is disclosed for deriving code schedule sequences for a target code generator from an input ordering of nodes and prime factors of their respective ordered invocation rates from an SDF graph representative...
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...