When compiling for instruction level parallelism (ILP), the integratio
n of the optimization phases can lead to an improvement in the quality
of code generated. However, since several different representations o
f a program are used in the various phases, only a partial integration
has been achieved to date. We present a program representation that c
ombines resource requirements and availability information with contro
l and data dependence information. The representation enables the inte
gration of several optimizing phases, including transformations, regis
ter allocation, and instruction scheduling. The basis of this integrat
ion is the simultaneous allocation of different types of resources. We
define the representation and show how it is constructed. We then for
mulate several optimization phases to use the representation to achiev
e better integration.