Method and apparatus for executing tasks by following a linked list of memory packets |
| OF THE EMBODIMENT FIG. 1 is a high level block diagram of a task flow computing machine 10. M... |
|
Optical fiber bus controller |
| FIG. 1 illustrates system 100 which implements the invention. System 100 comprises a number of ... |
|
Low-latency real-time dispatching in general purpose multiprocessor systems |
| The present invention provides a method of real-time dispatching in a general purpose ... |
|
dbX: a persistent programming language model |
| The persistent programming language model described herein solves the problem of seamlessly ... |
|
Data processor and data processing system |
| The inventor has studied for speeding up of matrix operation and inner product operation employing ... |
|
Tape recorder having cassette loading apparatus |
| Accordingly, it is an object of this invention to provide a tape recorder having a cassette loading ... |
|
Laser capable of producing a frequency standard |
| I claim: 1. A laser capable of producing a stable frequency standard comprising means for ... |
|
Logic element |
| It is the object of the invention to provide a gate circuit of the type above described which ... |
|
Tunable alkali metallic vapor laser |
| We claim: 1. A tunable pulse laser system comprising: (a) a resonant optical cavity comprising heat ... |
|
CO Chemical laser produced by laser induced chemistry of CSCl.sub.2 |
| I claim: 1. A method for the production of the excited radical, CS*, by irradiating CSCl.sub.2 in ... |
|
|
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)
| Details |
Inventors: Donovan, Robert John; Roediger, Robert Ralph; Schmidt, William Jon;
Assignee: International Business Machines Corporation (Armonk, NY)
Primary Examiner: Hafiz; Tariq R.
Assistant Examiner: Ingberg; Todd
Attorney, Agent or Firm: Wood, Herron & Evans, L.L.P.
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 speed of execution of the program can be achieved by reducing procedure call overhead, with reduced expense in terms of program size as compared to traditional inlining. Various criteria for determining whether to inline particular child procedures are also described. |
|
DETAILED DESCRIPTION Unfortunately, traditional inlining is often unable to substantially reduce the procedure call overhead of a program where to do so would be highly advantageous. In particular, when calling a procedure that usually executes only a small number of instructions before returning to its parent, the procedure call overhead is a large fraction of the cost of executing the procedure. For example, it is typical for a computer program to include a fairly large procedure that checks for error conditions. If no error condition has occurred, the procedure returns, after executing only a small number of statements. Only if there is an error condition, will any of the rest of the statements of the procedure be executed (e. g. , to create screen displays warning of the error, etc. ) If a procedure of this kind contains a significant number of instructions that are not usually executed, traditional methods are unlikely to inline the procedure. The present invention builds on the recognition that most of the statements in many large procedures found in typical computer programs are rarely if ever executed, and provides a form of inlining optimization that appropriately handles large procedures in which most of the statements in the large procedure are rarely or never used. In accordance with principles of the present invention, an optimizing compiler utilizes inlining to improve the performance of a computer program having a parent procedure which calls a child procedure. Instead of inlining an entire child procedure into the parent procedure, one or more selected paths through the child procedure are identified and inlined into the parent procedure, without inlining at least one path through the child procedure into the parent procedure. Because only one or more selected paths through the child procedure have been inlined, the procedure call overhead of the program can be reduced, at a reduced total increase in program size as compared to total inlining of the child procedure. In disclosed specific embodiments, the computer program is evaluated to determine path frequencies for each procedure prior to operation of the optimizing compiler
|
| Related patents |
|
|
Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring
The invention disclosed herein comprises a method of, a system for, and an article of manufacture for providing code restructuring based on profiling information and ...
|
|
|
Software reconfiguration engine
The present invention relates generally to computer system software development and maintenance. More particularly, the invention relates to a reconfiguration system for ...
|
|
|
Automated validation and verification of computer software
The present invention discloses a method and apparatus for automatic validation and verification of computer software. The software to be tested is first retrieved from ...
|
|
|
System for generating test data
A system for generating test data that overcomes these and other problems has a data structure definition system, a message creation system, and an execution system. The ...
|
|
|
Diabetes management
According to a first aspect of the present invention there is provided a method of predicting the level of a glycosylated haemoglobin component in a patient's blood ...
|
|
|
Method and apparatus for code translation optimization
OF PREFERRED EMBODIMENTS Generally, the present invention provides a method of optimizing software translation. Specifically, when a microprocessor accesses a block of ...
|
|
|
Method and computer system for loading objects
To achieve the foregoing objectives, the present invention executes the following steps in a computer system loading an object-oriented program including a plurality of ...
|
|
|
Graphical design processing apparatus for assessing and modifying design of components
It is therefore an object of the present invention to provide a graphic data processing apparatus which permits even an unskilled or unexperienced designer or production ...
|
|
|
Developers tool for object-oriented programming
The present invention fulfills this need in the art by providing a software developer's tool to help write application programs for an object-oriented operating system ...
|
|
|
Method and apparatus for storing templates in a component system
The present invention provides a component system in which a number of base applications, i.e. components, such as file viewers, spreadsheets, draw/diagram utilities, ...
|
|
|