home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!tymix!tardis!olivea!hal.com!decwrl!elroy.jpl.nasa.gov!news.claremont.edu!ucivax!megatek!rgs
- From: rgs@megatek.uucp (Rusty Sanders)
- Newsgroups: comp.sys.sgi
- Subject: Re: R4000 compiler directive, is there one ???
- Message-ID: <1992Aug14.180101.14529@megatek.uucp>
- Date: 14 Aug 92 18:01:01 GMT
- References: <1992Aug13.181236.18013@Veritas.COM>
- Organization: Megatek Corporation, San Diego, California
- Lines: 41
-
- From article <1992Aug13.181236.18013@Veritas.COM>, by rogerk@Veritas.COM (Roger B.A. Klorese):
- > In article <ogn3in4@zuni.esd.sgi.com> olson@anchor.esd.sgi.com (Dave Olson) writes:
- [>>| from rgs@megatek.com don't omit attributions like this please ]
- >>| I seem to remember seeing in some version or other of the compiler
- >>| (sorry, I don't know if it was beta, release, or what) that there
- >>| was a switch -r4000.
- >>
- >>It is passed on to the assembler untouched, and the comments there
- >>lead me to believe your recollection about instruction scheduling
- >>is correct, but I don't know enough about compilers to know what
- >>exactly (if anything!) it is doing.
- >
- > It's omitting delay-slot nops.
-
- It definitely does more than this, as I know it was causing a different
- scheduling of floating point operations. As John Mashey has said in
- a related article to this string, that's where most of the scheduling
- differences will be between an R3000 (or R6000 for that matter) and an
- R4000.
-
- 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?
-
- As an aside, the last time I looked at it, while -r4000 generated
- much better scheduled code for the R4000, it was in no way optimal.
- It appeared to (at that time) have a rather limited grasp of the
- complexities of the R4000 floating point pipe. The one example of
- that I saw (way back when) was that it scheduled mul.s executions
- every 4 clocks (just like a mul.d), when they can actually be
- scheduled every 3. Also, it looked like it didn't have a good idea
- of the interactions between the multiplier and the adder (they do
- have some rather nasty interactions).
-
- Of course, SGI could fix this by "just" fully pipelining the adder
- and multipliers. It's only silicon, after all :-).
- --
- ----
- Rusty Sanders, Megatek Corp. --> rgs@megatek.com or...
- ...ucsd! ...hplabs!hp-sdd! ...ames!scubed! ...uunet!
-