Patent
1997-02-05
1999-01-05
Voeltz, Emanuel Todd
395705, 395709, G06F 945
Patent
active
058571051
ABSTRACT:
A compiler method converts an indirect call to a callee routine in a caller routine program listing, to an in-line listing of, or a direct call to, the callee routine in the caller routine. An indirect call is a call to a callee routine wherein the callee routine is not absolutely identified until run time of the program listing. The method includes the steps of: comparing plural prospective callee routines in the program listing with characteristics of an indirect caller site in the caller routine and eliminating prospective callee routines which evidence other than a match with those characteristics; employing call statistics associated with remaining prospective callee routines (and the caller routine) to eliminate further ones of the prospective callee routines to arrive at a set of one or more chosen prospective callee routines. The method concludes by in-lining at the indirect caller site at least one of the set of chosen prospective callee routines. As an alternative, a direct call can be inserted. At run time, the program listing is executed and, in the process of execution, the callee routine is absolutely identified. If the identified callee routine has already been in-lined (or there is a direct call present), it is executed and the program continues. If the identified callee routine is not present in the caller's code listing, via either an in-line listing or a direct call, an indirect call is executed to the identified callee routine.
REFERENCES:
patent: 5175856 (1992-12-01), Van Dyke et al.
patent: 5721893 (1998-02-01), Holler et al.
patent: 5740493 (1998-04-01), Carini
"Region-Based Compilation: An Introduction and Motivation", Hank et al., Proc. of Micro-28, IEEE, pp. 158-168, Dec. 1995.
Hwe W.W. et al., "Intise Function Expansion for Compiling C Programs", ACM, pp. 246-255, 1989.
Wagner et al., "Accurate Static Estimators for Program Optimization", SIGPLAN, ACM, pp. 85-96, Jun. 1994.
Chang P.P. et al., "Profile-Guided Automatic Inline Expansion for C Programs", Soft. Practice and Experience, v. 22(5) pp. 349-369, May 1992.
ACM Principles and Practice of Programming Languages, 1994, pgs. 1-11, Brad Calder et al., "Reducing Indirect Function Call Overhead In C++ Programs".
ACM Sigplan notices, vol. 29, No. 4, Apr. 1994, pgs. 41-48, Jon Loeliger et al., "Developing An Interprocedural Optimizing Compiler".
Hewlett Packard HP 9000 Computers, Jul. 1996, pgs. 1-1 --4-1 and A-1, "HP PA-RISC Compiler Optimization Technology White Paper".
Hewlett Packard HP Confidential, Version 1.3, Nov. 15, 1991 Daryl Odnert, "An Overview of the Compiler Architecture for Advanced Optimization on PA-RISC".
Technical report TRCS 95-22 (University of California), Dec. 1995, pgs. 1-25, Gerald Aigner et al., "Eliminating Virtual Function Calls in C++ Programs".
Ayers Andrew E.
Gong Chun C.
Chaki Kakali
Hewlett--Packard Company
Todd Voeltz Emanuel
LandOfFree
Compiler for reducing number of indirect calls in an executable does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Compiler for reducing number of indirect calls in an executable , we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Compiler for reducing number of indirect calls in an executable will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-868835