www.delorie.com/archives/browse.cgi   search  
Mail Archives: pgcc/1998/07/18/03:29:57

X-pop3-spooler: POP3MAIL 2.1.0 b 4 980420 -bs-
From: nuke AT bayside DOT net
X-Authentication-Warning: nuklear.steelcity.net: nuke owned process doing -bs
Date: Sat, 18 Jul 1998 07:12:54 -0400 (EWT)
X-Sender: nuke AT nuklear DOT steelcity DOT net
To: Vincent Diepeveen <diep AT xs4all DOT nl>
cc: Misha <vulcao AT netvision DOT net DOT il>, beastium-list AT Desk DOT nl
Subject: Re: PGCC's optimizations (continued)
In-Reply-To: <3.0.32.19980716182614.009352b0@xs4all.nl>
Message-ID: <Pine.LNX.4.00.9807180704160.189-100000@nuklear.steelcity.net>
MIME-Version: 1.0
Sender: Marc Lehmann <pcg AT goof DOT com>
Status: RO
X-Status: A
Lines: 77

On Thu, 16 Jul 1998, Vincent Diepeveen wrote:

> At 10:22 AM 7/16/98 +0300, Misha wrote:
> >Hi.
> >  First, thanks to Marc and others who have responded promptly and
> >informatively to my questions.
> >
> >Recap: Sometime ago I posted that PGCC does not optimize PII(PPro)
> >code that good. I said that GCC 2.7.2.1(libc5) produced better code for
> >my number-crunching app.
> >
> >Now to the point. I did all what you have adivised me to do (compiler
> >flags). Only after adding "-march=pentiumpro", the code gained about
> >23% (the integer only version), and now it is slightly (1.1%) better than
> >GCC 2.7.2.1 produced code.
> >
> >When I used the float version none of the flags you've sent me gained
> >anything.
> >
> >I am not dissapointed with PGCC, but I think some more work has to be
> >done in order to gain the full potential of the P6 (PII+PPro) architecture.
> 
> that's clear, but also true for all other compilers.
> 
> >BTW, has anyone ever done a comparison of the same code under PGCC
> >and DOS/Win95 compilers (VC++ 5.0, Watcom C/C++, Symantec, Borland,
> >Metaware, etc...)?
> 
> Yes Watcom is very fast for DOS applications and optimizes best at
> pentium. PGCC is at the same level like watcom, and gcc follows with a big
> gap. Borland is for optimizing laughable. For programming features
> it's at no #1 though. Nothing as easy as making interface for windoze
> with borland products like builder. 
> 
> For windows NT/95/98 however there is only 1 number 1 and that's msvc.
> Nothing comes near msvc++ speed. Too bad. Not only win98 seems
> to get the world at its feet (even the most stupid computeruser can
> install win98), but also you compile with a compiler from that company
> to speeds no other compiler can manage. At least 10% speed diff with
> MSVC and gcc. that's in fact not much, but the new msvc++ 6.0 which is
> in beta is 20% faster than 5.0, so you guys have a lot of work to do!

you must understand that msvc is for microsoft windows ONLY. since it's for
alpha and x86 ONLY (matter of fact, i'd be willing to bet that 20% increase is
due to removal of alpha support - NT 5.0 will likely be x86 only) and so it
doesn't need to do any weird hacks for every which architecture that gcc
supports. it's perfectly ok for the msvc++ people to stick x86 assembly code
all over the place and assume exactly what's in the system, because if your
system is weird enough to break the compiler, windows 95/98/NT wouldn't have
installed on it.

make no assumptions. a very large part of gcc is its platform independantness.
if you were to make gcc say, a compiler for FreeBSD/x86 *ONLY*, cut out any
code that platform doesn't use, do no checking for headers/libraries
because you know exactly what it has, you'd make a very tiny and probably
a much faster compiler.

> About latest version pgcc: I tried installing the 'new'
> PGCC quite a number of times, but so far
> didn't manage under Linux. It can't work with 2.8.1 header files
> for some reason. I'll try it tonight again.
> 
> >I had some difficulties porting my own code but I am working on it now. As
> >soon as I have results I will post them here.
> 
> Porting from (p)gcc to msvc/watcom is hard because msvc/watcom are horrible
> in casting. You must cast everything.

which is another thing. those compilers don't do any intelligent variable
checking to see if you absolutely need a cast or not. while you're making your
single-platform single-os gcc, go ahead and take out all the checks it does to
see wether a cast is needed or not. variables of different types should ALWAYS
have a cast. this would probably be a pretty big increase in compile speed.
 _        _  __     __             _ _                                  _
|        / |/ /_ __/ /_____         |       Nuke Skyjumper               |
|       /    / // /  '_/ -_)        |         "Master of the Farce"      |
|_     /_/|_/\_,_/_/\_\\__/        _|_           nuke AT bayside DOT net       _|

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019