Incorporating register pressure into an inlining compiler

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S145000

Reexamination Certificate

active

06983459

ABSTRACT:
A method, system, and program product for optimizing compilation. In the preferred embodiment, a compiler compiles a source-code file twice; once to gather register-pressure data, and a second time to apply the data. Thus, the compiler saves register-pressure data during the first compilation and uses it during the second compilation to make informed inlining decisions. The compiler saves two kinds of data during the first compilation: (1) the maximum register-pressure occurring in each procedure; and (2) within each procedure, the register pressure at each call site that is a potential inlining candidate. This data is then fed into the compiler during the second compilation. The compiler uses the data during the second compilation in two ways. First, when deciding whether to inline a child procedure into a parent procedure, the compiler determines whether the sum of the maximum register-pressure and the site register-pressure exceeds the number of available, physical registers. If so, the inlining is not done. Otherwise, inlining is permitted subject to other heuristics. Second, if the child procedure is chosen for inlining into the parent procedure, the maximum register-pressure of the parent procedure is set to be the maximum of its existing value or the sum of the maximum register-pressure of the child procedure and the site register-pressure. This assures that later consideration of the parent procedure for inlining into another procedure can be done with accurate register-pressure data available.

REFERENCES:
patent: 5530866 (1996-06-01), Koblenz et al.
patent: 5701489 (1997-12-01), Bates et al.
patent: 5740443 (1998-04-01), Carini
patent: 5768595 (1998-06-01), Gillies
patent: 5890000 (1999-03-01), Aizikowitz et al.
patent: 5937196 (1999-08-01), Schmidt et al.
patent: 5946491 (1999-08-01), Aizikowitz et al.
patent: 5987259 (1999-11-01), Goebel
patent: 6026234 (2000-02-01), Hanson et al.
patent: 6072951 (2000-06-01), Donovan et al.
patent: 6175956 (2001-01-01), Hicks et al.
patent: 6195793 (2001-02-01), Schmidt
patent: 6292940 (2001-09-01), Sato
patent: 6305014 (2001-10-01), Roediger et al.
Jagannathan-Wright, Flow-directed Inlining, May 1996, ACM.
Serrano, Inline expansion: when and how, 1997, Centre Universitaire d'Informatique, Universite of Geneva.
Silicon Graphics, Inc., MIPSpro Compiling and Performance Tuning Guide, Apr. 1999.
Holzle et al., Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback, Jun. 1994, SIGPLAN Conference on Programming Language Design and Implementation, Orlando, FL.
U.S. Appl. No. 08/950,612, filed Oct. 15, 1997, Donovan et al., “Profile—Driven Inlining of Frequently Executed Paths”, now US 6,072,951.
U.S. Appl. No. 09/120,635, filed Jul. 22, 1998, William Jon Schmidt., “Method and Computer Program Product for Adaptive Inlining in a Computer System”, now US 6,195,793.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Incorporating register pressure into an inlining compiler does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Incorporating register pressure into an inlining compiler, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Incorporating register pressure into an inlining compiler will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3572447

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.