as you've probably noticed i've been playing around with all kinds of irix versions starting from 4 lately and naturally at some point i wondered about the benefits of all the upgrades over time. namely coff, (o)32 and n32 so i ran a little test with gzip:
- irix4.0.5, coff: 2.12
- irix5.3, coff: 2.12
- irix5.3, o32: 2.12
- irix6.2, n32: 2.04
- irix6.2, o32: 2.12
these are average values to keep it fair. i ran each test a couple of times to determine the average.
no surprises so far you might say but only at first sight. all gzip builds i used i compiled using the original mips(pro) compilers for each irix version. but only the compiler i used for the n32 version does support -O3 for object files i.e. all others i built using -O2. not fair you might say and that's what i thought as well so i built the n32 version with -O2, too and the result was 2.19! and that although it's mips3 and all others are just mips1.
so i went ahead and compiled a mips1 -O2 version on 6.2 and to my surprise that one beat all others except for the n32 getting a 2.09. might be the result of the newer compiler i have for 6.2 compared to the ones for 5.3 and 4.
intrigued by that i built one more gzip but this time taking the detour and doing a 2 phase build; ucode first and then the final link. the only way to use -O3 for mips1 o32 if there's more than one source file. did that and ran the test once more: 2.05!
so the good old mips1 build with just using -O3 could compete with the fancy n32 mips3 build built with not just -O3 but the whole spiffy -OPT:Olimit=0:roundoff=3:div...
sure, the test is far from comprehensive but still interesting i think.