@techreport{TR-IC-98-11, number = {IC-98-11}, author = {Guido Araújo and Sharad Malik}, title = {Register Allocation for Indirect Addressing in Loops}, month = {April}, year = {1998}, institution = {Institute of Computing, University of Campinas}, note = {In English, 10 pages. \par\selectlanguage{english}\textbf{Abstract} Indirect addressing is by far the most used addressing mode in programs running in embedded CISC architectures. The reason is that it enables fast address computation combined with short instructions, resulting in faster/smaller programs. This paper proposes a solution to the problem of allocating address registers to array references within loops, when using indirect addressing combined with auto-increment. The result is a $O(n^{2.5})$ algorithm, based on the solution of a maximum bipartite matching problem, which minimizes the number of address registers required by a program. \par (A version on this paper is going to be published in {\em ACM Transactions on Programming Languages}.) } }