The compiler back-end has the potential to play a significant role in improving the performance of a multiscalar processor. There are two areas where the compiler can play a major role—program partitioning and intra-thread scheduling. Thread formation is a difficult problem, because it has to consider many issues such as PU utilization, load balancing, thread prediction accuracy, and inter-thread data dependences. Often, trying to make optimizations for one area will have a negative effect on another. Some work has been done in this area in the context of multiscalar processors  and superthreading processors .
Unable to display preview. Download preview PDF.