Although code optimizations are necessary to parallelize code, few gui
delines exist for determining when and where to apply optimizations to
produce the most efficient code. The order of applying optimizations
can also have an impact on the efficiency of the final target code. Ho
wever, determining the appropriate optimizations is difficult due to t
he complex interactions among the optimizations, scheduler and archite
cture. To aid in selecting appropriate optimizations, an optimizer gen
erator (Genesis) is presented that produces an optimizer from specific
ations of optimizations. This paper describes the design and implement
ation of Genesis and demonstrates how such a generator could be used b
y optimizer designers. Some experiences with the generator are also de
scribed.