An approach to global register allocation.

Abstract : The thesis presents an approach to the problem of global register allocation as performed by an optimizing compiler. The problem considered is actually the more general one of choosing what physical resource within the target machine will be used to hold the results of various computations in a running program. The results may be the values of common (redundant) subexpressions, partial results developed during expression evaluation, or variables declared by the programmer. An optimizing compiler can make better use of the resources of the target machine if these decisions are all considered together at or near the source level rather than being distributed throughout the compiler and operating at both source and object levels. A decomposition of an optimizing compiler is presented with research focusing on one part of the compiler, namely the part which assigns the computed results to physical locations.