feedback-based prefetching. The
optimization works on the assumption there will be two compilation
passes, with a training
run in between. During the first pass, we make good guesses as to
places that are likely to
benefit from the insertion of prefetches, and we insert prefetches in
all those places (mostly
based on induction variables, and the current gcc induction-variable
based prefetching
mechanism). In addition to inserting lots of prefetch instructions,
the first pass also inserts
profile data collection code, to collect information during the
training run about the
effectiveness of the inserted prefetches. During the training run,
this data is collected, and
written to a file, "TRACE_FILE", which goes into the current working
directory.