Re: Question: Specific vs. Generic Compilers

preston@dawn.cs.rice.edu (Preston Briggs)
Tue, 28 Jan 1992 02:00:55 GMT

          From comp.compilers

Related articles
Question: Specific vs. Generic Compilers fs_reise@rcsw21.rcvie.co.at (1992-01-27)
Re: Question: Specific vs. Generic Compilers preston@dawn.cs.rice.edu (1992-01-28)
Re: Question: Specific vs. Generic Compilers henry@zoo.toronto.edu (1992-01-28)
Re: Question: Specific vs. Generic Compilers Christian.Reiser@rcvie.co.at (1992-02-05)
| List of all articles for this month |
Newsgroups: comp.compilers
From: preston@dawn.cs.rice.edu (Preston Briggs)
Keywords: optimize, design
Organization: Rice University, Houston
References: 92-01-102
Date: Tue, 28 Jan 1992 02:00:55 GMT

fs_reise@rcsw21.rcvie.co.at (Christian Reiser) writes:


> for many machines compilers are distributed by the machine
>producers specialized for this machine (e. g. Sun sells a C-Compiler for
>Sun 4). On the other hand generic compilers like gnu-c exist, which can
>easily be changed for a new computer.


> * Which one is better in the aspects of code size, execution time and
> effective use of resources and possibilities like delay slots and
> processor caches?


It's terribly difficult to compare compilers fairly. Some are designed
for fast compilation, easy portability, small compile-time requirements,
fast object code, debuggable object code, etc. Different tradeoffs exist,
and each compiler writer must decide what performance points to emphasize.


Generally though, I'd expect the machine-specific compiler to generate
faster code, though gcc is remarkably good at embarrassing various
manufacturers.


You'll probably have to do actual comparisons on the hardware rather than
rely on generic answers.


> * Do statistics exist and where can I get them from?


I don't think so, though sometimes you see limited comparisons published.


> * How far are (hard) real-time considerations taken into account? (I
> think of aspects like precalculation of execution time or at least
> haveing always the same execution time for the same code.)


In general, determining execution time (even termination) is undecidable,
so few compilers attempt such predictions. Even estimating cycle-counts
for particular instructions is difficult, due to pipeline interlocks,
cache misses, et cetera. However, some compilers will produce expected
cycle counts for basic blocks as part of the assembly listing.


Preston Briggs
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.