[RC5] AXP client slow on RC5

Dan Sugalski dan at sidhe.org
Mon Jun 4 11:14:20 EDT 2001


At 01:56 AM 6/4/2001 -0400, Fruitloops wrote:
> > With the AXP, at least, the big issue is less the actual machine
> > code than the assembly syntax and calling conventions. Unfortunately the
> > Alpha assembler for WinNT has a different syntax than the asm function in
> > Dec C for OpenVMS Alpha, which is different from the syntax the gnu
> > assembler wants on Tru64. And all three take their parameters in different
> > sets of registers, in different ways.
>
>I am not an Alpha expert, I admit I may be wrong.

That turns out to be the case. :)

>But aren't GNU C and GNU assembler available for each of these three AXP
>operating systems?  You don't have to use the "officially recommended" tools
>for each OS, for Pete's sake! ;-)

At the time that I did the OpenVMS client, GCC and GAS weren't available 
for the Alpha. Even if they were, I wouldn't have used them--GCC's 
performance is rather substandard compared to the native compiler, and Gnu 
compiler tools traditionally don't play well with others, so even if I 
could've gotten the assembly core working with GAS, getting it linked in 
would've probably taken more time than getting the assembly tweaked for the 
native format. You also rather underestimate the effort it takes to port 
GCC to a non-unix platform at this point. (OpenVMS VAX might be one of the 
very few it works on now, and the porting effort was done long before the 
big OS shakeout)

I'm pretty sure that's also true for Alpha WinNT. I'm not sure GCC's 
available natively for x86 NT *now*--I really doubt it's out for Alpha NT, 
which isn't even supported anymore.

>Don't NT and OpenVMS have good POSIX compliant layers/APIs?  Wouldn't this
>POSIX compliance allow GNU C and GNU assembler to be ported over from Tru64
>or Linux or *BSD for AXP without too much fuss?

Huh? This makes little sense. POSIX has nothing to speak of to do with 
porting compilers between platforms. (If you're speaking of the system 
libraries, you'll find that while things might look POSIX to the user, they 
don't to the compiler, but that's a separate issue)

>See, I know what I'm talking about. ;-)

That, as they say, turns out not to be the case. :) GCC only showed up for 
OpenVMS Alpha after I did the dnet client, and it never worked properly. 
(In the "It generates bad code" sense) It's also generates code that's 
significantly slower (factor of 2+--Dec C is a *lot* better), more awkward 
than native tools, and tends to generate object modules that don't play 
well with others. GCC's codegen, honestly, sucks on Alphas. (To be fair, it 
sucks everywhere else, too)

Besides, there's also a small matter of perspective--do you *really* think 
it would've been easier to port over the client to a non-platform-native 
GCC and GAS then mangle the alpha assembly with the native compiler? (I 
assume you're not talking about porting the entire GCC suite over, here...)


					Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
dan at sidhe.org                         have teddy bears and even
                                      teddy bears get drunk

--
To unsubscribe, send 'unsubscribe rc5' to majordomo at lists.distributed.net
rc5-digest subscribers replace rc5 with rc5-digest



More information about the rc5 mailing list