发明名称 Compiler for reducing number of indirect calls in an executable code
摘要 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.
申请公布号 US5857105(A) 申请公布日期 1999.01.05
申请号 US19970796095 申请日期 1997.02.05
申请人 HEWLETT-PACKARD COMPANY 发明人 AYERS, ANDREW E.;GONG, CHUN C.
分类号 G06F9/42;G06F9/45;(IPC1-7):G06F9/45 主分类号 G06F9/42
代理机构 代理人
主权项
地址