| Steven M. Kurlander and Charles N. Fischer. Minimum cost interprocedural register allocation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1996. |
....paths within each function and try to avoid execution of instructions in the hot paths at the expense of the colder ones. SPIKE applies the Hot Cold Optimization (HCO) 3] on a duplicated copy of the hot path. To accomplish this, they also make use of data and control flow analyses. Others [4, 8, 9, 10, 16] handle the same problem in similar ways using control flow, data flow and call graphs representations of the program, which are needed in order to obtain information about liveness of registers and or variables. For large applications, flow graph representations severely increase the time and ....
S. M. Kurlander and C. N. Fischer, "Minimum Cost Interprocedural Register Allocation", Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1996.
....the number of register to register copies through coalescing [8] we expect that the overhead of procedure calls can be kept low. To reduce the overhead of saving and restoring registers at procedure calls, it will probably be worthwhile to consider an interprocedural register allocation technique [1,17,16,10]. An ambitious compiler for an embedded processor could of course apply code compression at both the intermediate code and machine code. Code compression applied to intermediate code can recognize repeated occurrences of large program fragments, will not miss opportunities due to the effects of ....
Steven M. Kurlander and Charles N. Fischer. Minimum cost interprocedural register allocation. In Proc. Symp. on Principles of Programming Languages, pages 230--241, 1996.
....HCO moves the computation of b to the stub. If p[i] is never true, b is never computed. The first time p[i] is true, we jump to the stub, compute b and then jump into the middle of the loop, so b is never computed again. Much work has gone into profile directed interprocedural register allocation [Wall86, Santhanam90, Kurlander96]. We consider HCO to be a framework for optimization, and a register allocator for this framework is being implemented. Optimizations such as shrink wrapping [Chow88] and ORA [Goodwin96] have sought to reduce unnecessary spills and reloads by placing them in the program where they are executed ....
S.M. Kurlander and C.N. Fischer, "Minimum cost interprocedural register allocation," in The 23rd ACM SIGPLAN SIGACT Symp. on Principles of Programming Languages, pp. 230-241, St. Petersburg, Florida, Jan., 1996.
.... 1982; Briggs et al. 1982; Chow and Hennessy 1990; Callahan and Koblenz 1991; Lal and Appel 1997] Others have considered the interaction of register allocation and scheduling in code generation for RISC machines [Goodman and Hsu 1988; Bradlee et al. 1991] and interprocedural register allocation [Fisher and Kurlander 1996]. Hitchcock III, C.Y. 1986] studied many of the problems involved in using addressing modes. Horwitz et al. 1966] proposed the first algorithm for optimal allocation of address registers in straight line code. The problem of allocating local variables to the stack frame, using indirect ....
Fisher, C. and Kurlander, S. 1996. Minimum cost interprocedural register allocation. In ACM Principles of Programming Languages Conference.
....unnecessary. Since proc does not know who is calling it, it must always save and restore r16 so that it executes correctly if called from caller1. Calling conventions and their associated heuristics are unable to handle context sensitive liveness. Nor can traditional interprocedural analyses [14, 17] cope with this problem. This difficulty can only be overcome statically by compiling multiple caller specific procedure versions (clones) each containing the appropriate save restore sequence. However, cloning expands code and can have adverse effects on I cache performance. We propose a simple ....
....can effectively eliminate restores in a flow sensitive manner which our technique cannot handle, but does not eliminate saves based on liveness. In addition, Policy G requires a large amount of critical path hardware, and more involved changes to existing instruction sets. Kurlander and Fischer [14] use interprocedural analysis and profile information to produce a statically optimal interprocedural spilling strategy. Their technique attacks all registers, but does not consider path information and must therefore produce conservative save restore code. Our solution deals with callee saved ....
Steven M. Kurlander and Charles N. Fischer. Minimum cost interprocedural register allocation. In The 23rd Symposium on Principles of Programming Languages, January 1996.
No context found.
Steven M. Kurlander and Charles N. Fischer. Minimum cost interprocedural register allocation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1996.
No context found.
S. M. Kurlander and C. N. Fischer. Minimum cost interprocedural register allocation. In The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1996. 164
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC