Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
2006-01-03
2006-01-03
Nguyen-Ba, Antony (Department: 2192)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
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.
Prosser Edward Curtis
Schmidt William Jon
Gamon Owen J.
Johnson Grant A.
Nguyen-Ba Antony
LandOfFree
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.
Profile ID: LFUS-PAI-O-3572447