From: suneel@mips.com (Suneel Jain)
Newsgroups: comp.sys.sgi
Subject: Re: R4000 compiler directive, is there one ???
Date: 17 Aug 92 18:02:36 GMT
Organization: MIPS Computer Systems, Sunnyvale, California
NNTP-Posting-Host: limca.mips.com

In article <1992Aug16.210505.18316@megatek.uucp> rgs@megatek.uucp (Rusty Sanders) writes:
>From article <oisl0q0@zuni.esd.sgi.com>, by olson@anchor.esd.sgi.com (Dave Olson):
>> In <1992Aug14.180101.14529@megatek.uucp> rgs@megatek.uucp (Rusty Sanders) writes:
>> | Net result; if you're using floating point on an R4000 you probably
>> | should use -mips2 -r4000 to get best performance. Does MIPS/SGI
>> | actually support (i.e. accept bug report calls) on the undocumented
>> | -r4000 switch?
>> 
>> I don't think so.  If so, we would have used it in the specmark
>> tests, more than likely.  I don't know why it isn't supported;
>> it may be for lack of testing, or introduction of bugs.
>
>It's my understanding that MIPS specifically did NOT want to use
>code optimized specifically for the R4000 in the Specmark suite.
>To wit: I believe the code wasn't even compiled -mips2 (which
>is clearly supported), much less with -r4000.
>
>I have been lead to believe this is because MIPS wanted to
>accurately represent processor performance with code compiled
>to run on any MIPS machine, hence the -mips1 compile switch.

I don't think the above is true. The SPEC numbers released by SGI for
Crimson and R4000 Indigo used the -mips2 option. 

>
>I don't believe I've ever seen Specmark numbers for an R4000
>with the code compiled -mips2 -r4000, or even just -mips2
>(although I would dearly love to).
>
>One would think it prudent marketing for MIPS/SGI to release
>both sets of numbers. One for compatibility mode (useful for
>software houses, which will compile -mips1), and one for raw
>"fast as we can get it" mode, which is the most useful number
>for the embedded market and end-users. Not that Spec is terribly
>useful as a performance indicator in the embedded market, but
>it would make my discussions with management SO much easier.


The -r4000 option is fully supported in the 3.10 release of the MIPS 
compilers. The SPEC numbers released for the Magnum R4000PC used the 
-mips2 and the -r4000 options.

Currently, the processors based on the MIPS architecture that are out in 
the market are R3000, R4000 and the R6000. Some time in the future, these 
will be joined by TFP, T5, VRX, ....  

There are differences in the instruction scheduling rules for each of 
these processors. Some of the differences are minor, but some are major,
especially in the area of FP scheduling. Most software applications will
be compiled only one way that allows it to run on all MIPS architecture 
boxes.  That lowest common denominator option today is -mips1. Sometime 
in the future, the lowest common denominator option maybe "-mips2" or
maybe even  "-mips2 -r4000".

At the same time, there are some programs that want the best scheduling 
for a particular target. To address such needs, we have added the -r4000 
and -r6000 options to the 3.10 compiler. These are completely orthogonal  
to the -mips[1,2,3] options, which define the instruction set to be used.
-- 
Suneel Jain 

EMAIL :	suneel@mips.com 
USMAIL:	Silicon Graphics, Inc., 928 Arques Avenue, Sunnyvale CA 94088-3650.
Newsgroups: comp.sys.sgi