Efficient register allocation for large basic blocks
We consider the NP-complete problem of generating evaluations for expression DAGs with a minimal number of registers. We restrict our attention to contiguous evaluations, because for nearly all of the DAGs derived from real application programs there exists a contiguous evaluation that is optimal w.r. to the register need. We present an algorithm that generates an optimal contiguous evaluation for a given DAG. The algorithm is very fast on the average. It generates the evaluation by splitting the DAG in trees with import and export nodes and applying a labeling scheme to the trees.
- Keßler, C.W., Paul, W.J., Rauber, T.: A Randomized Heuristic Approach to Register Allocation. Proceedings of PLILP'91, Springer LNCS Vol. 528, 195–206.Google Scholar
- Keßler, C.W., Paul, W.J., Rauber, T.: Scheduling Vector Straight Line Code on Vector Processors. in: R. Giegerich, S.L. Graham (Ed.): Code Generation-Concepts, Tools, Techniques. Springer Workshops in Computing Series (WICS), 1992.Google Scholar