The first optimizing compiler was developed at IBM in order to prove t
hat high level language programming could be as efficient as hand-code
d machine language. Computer architecture and compiler optimization in
teracted through a feedback loop, from the high-level language compute
r architectures of the 1970s to the RISC machines of the 1980s. In the
supercomputing community, the availability of effective vectorizing c
ompilers delivered easy-to-use performance in the 1980s to the present
. These compilers were successful at least in part because they could
predict poor performance spots in the program and report these to user
s. This fostered a feedback loop between programmers and compilers to
develop high performance programs. Future optimizing compilers for hig
h performance computers and supercomputers will have to take advantage
of both feedback loops.