Linear-time register allocation for a fixed number of registers
Linear-time register allocation for a fixed number of registers
复制标题
固定数量寄存器的线性时间寄存器分配
DOI:
--
复制
发表时间:
1998
期刊:
影响因子:
--
通讯作者:
J. A. Telle
中科院分区:
文献类型:
--
作者:
H. Bodlaender;J. Gustedt;J. A. Telle
We show that for any j&d number of registers there is a linear-time algorithm which given a structured (= goto-fiee) program finds, if possible, an allocation of variables to registers without using intermediate storage. Our algorithm allows for rescheduling, i.e. that straightline sequences of statements may be reordered to achieve a better register allocation as long as the data dependencies of the program are not violated. If we al80 allow for registers of different types, e.g. for integers and floats, we can give only a polynomial time algorithm. In fact we show that the problem then becomes hard for the W-hierarchy which is a strong indication that no O(n’) algorithm exists for it with c independent on the number of registers. However, if we do not allow for rescheduling then this non-uniform register case is also solved in linear time.