Generation of efficient parallel code is a major goal of a well-designed an
d developed parallelizing compiler. Another important goal is portability o
f both compiler system and the resulting output source codes. The various c
hoices of current and future parallel computer architectures as well as the
cost of developing a parallelizing compiler make portability a very import
ant design goal. Since the design of parallelizing compilers is considerabl
y move complex than designing conventional compilers, it is very important
to achieve both efficiency and portability. To meet this dual goal, we have
investigated the application of object oriented design to parallelizing co
mpilers. Our parallelizing compiler design is based on abstractions of inte
rmediate representations of loops and their class definitions. In this pape
r, we address the problem of loop parallelization and propose a framework w
here the loop parallelization process is divided into three phases and the
optimization of loops is performed via a cyclic application of these three
phases. The class of each phase is hierarchically derived from intermediate
representations of loops. This facilitates the portability of the resultin
g parallelizing compilers. Furthermore, one of the phases uses a reservatio
n table of hardware resources in order to obtain optimized parallel program
s for given hardware resources. The validation of the proposed framework is
given through the application of the object oriented design on an example
program which is then parallelized efficiently.