This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: g77 performance on ALPHA
- To: martin dot kahlert at provi dot de
- Subject: Re: g77 performance on ALPHA
- From: N8TM at aol dot com
- Date: Sun, 29 Aug 1999 12:33:39 EDT
- CC: egcs at egcs dot cygnus dot com
In a message dated 8/29/99 1:24:27 AM PST, martin.kahlert@provi.de writes:
> Why use such a complicate thing like the Haifa scheduler at all when
> we rely on out of order cpus?
> Why not just emit instructions as soon as they arise? (Perhaps after
> a good register allocator)
I'll give the dumb user's response, since there are people on the list much
better able to give the expert response. Even with out-of-order execution,
there appears to be a clear advantage to initiating instructions in the most
effective order. Whether this is associated with the limited length of
out-of-order queues, with the possibility of exhausting the supply of shadow
registers, or additional processing time spend shuffling instructions in the
queues, or even with cacheing considerations, or likely some combination of
the above, I'm not able to say. I do think that I have seen evidence that
some processors absorb additional time when shuffling memory read and write
operations. A relevant comparison here might be between the g77 -mpentiumpro
and -march=pentiumpro, in those situations where scheduling is different
although the instructions chosen are the same. There are cases with
-mpentiumpro where one operand is accessed several instructions earlier than
the other, while -march=pentiumpro accesses both operands several
instructions before use, increasing the depth of use of the stack.
Sometimes, this clearly avoids a stall wait for the second operand.
>>I use gcc/g77 because of its wide range of supported architectures.
>>So good code on all architectures is a desireable thing for me, too.
I agree.
>>Thanks for your long reply,
>>Martin.
I'm trying not to be so long.
Tim