23rd EUROMICRO Conference '97 New Frontiers of Information Technology
Tuning the GNU Instruction Scheduler to Superscalar Microprocessors
Budapest, HUNGARY
September 01-September 04
ISBN: 0-8186-8129-2
In the past, the GNU C compiler (GCC) has been successfully ported to several superscalar microprocessors. For that purpose, the instruction timing of the target processor usually had been modeled in a straightforward manner. Unfortunately, in our experience, this is likely to lead astray the instruction scheduler. In this paper we describe some of our experiments that revealed such flaws, concerning the DEC Alpha 21064 as well as other superscalar RISC processors. We analyze the circumstances that led to poorly scheduled code, and demonstrate how the machine description supplied for a superscalar processor can be modified to fix some of these problems without hampering the portability of the GCC. On the other hand we show situations for which we do not have a solution within the given framework.