[net.micro.68k] High-quality 68000 C compiler - survey results.

leichterj@rani.DEC (09/08/84)

I posted a request to the net a couple of weeks ago asking for information on
production-quality optimizing C compilers for the 68000.  This note contains
the responses.

First, a summary:

I heard from a lot of people.  The most widely known, and widely praised,
compiler was that produced by Green Hills Software.  They seem to be widely
acknowledged to have the best optimizer in the business - they do all the
register assignments, loop invarient removal, etc.  They appear to sometimes
produce code that has been optimized for space rather than time - other
compilers produce larger but somewhat faster images.  The Green Hills compiler
runs as a cross-compiler on VAXes running either VMS or Unix, and produces
assembler output; Green Hills does not sell assemblers, debuggers, or other
associated tools.  They also have compilers for a couple of other languages,
and support for 16032's.  An object license runs about $6000.  They can be
reached at (818) 796-6543.  (Some of the letters list them in the 213 area
code.  This is obsolete, though it will work.  They are in Pasadena, BTW.)

A number of people recommended AT&T's new 68000 compiler.  I didn't contact
them for two reasons:  It's a new product, and I'd like to see the thing out
in the field and running for a while before I commit to it; and it seems to be
more oriented toward being the compiler on a Unix system, rather than a
cross-compiler for small, embedded system.  Give it a year, and the story
might be a little different.  (Partly, the above is rationalization - talking
to vendors takes a LOT of time, which I don't have - so I have to do some
admittedly arbitrary pre-screening.  If anyone has had good experiences with
the new AT&T compiler, by all means post some information about it - I'm
sure a lot of people will be interested.)  Anyway, they can be reached at
(800) 828-UNIX (though the person at AT&T who cited this number says it's
"for pricing info. and to order").

The same comments apply, even more strongly, to the Amsterdam Compiler kit,
which a couple of people mentioned.

On the other side of this "one year wait" is Intermetrics.  We talked to them
a year ago and had the same misgivings I now have about AT&T.  Now, they have
a real product that looks very attractive.  The compiler produces object code
directly; the object code feeds into a complete set of linker/loader/librarian
utilities that Intermetrics provides with the compiler.  The whole system was
specifically designed for use in producing embedded.  They also cost around
$6000, but because they use their own object format, you have to use their
assembler (about another $4000 - though you don't need it unless you actually
do assembler coding).  For further information, contact Deborah Sears at
(617) 661 0072 (Cambridge, Mass.).

Other people I talked to:

John Gertwagen at Gould in Urbana - they used to be Compion - has what looks
like it could be a nice compiler, though it doesn't run on VMS.  They say
they've been using it in-house for a while - it's a new back-end on the
compiler used for Gould's Unix port - but they've only started selling it as a
product in the last couple of months.  I haven't had a chance to look closely
at it yet.  For further info, call John at (217) 384 8500.

A few people mentioned LPI - Language Processors Incorporated.  It turns out
that LPI's "compiler back-end guru" is an old friend and fellow hacker.  He
claims their C compiler is really good, and I believe him.  Unfortunately,
LPI's business as far as C compilers is concerned is producing things you can
plug in to replace PCC on your Unix system to improve performance.  (They also
have tons of other compilers, debuggers, etc.)  They don't seem to be the
right people to deal with, at the moment, for a cross-compiler for a
stand-alone system.  If you want more info from them, call them in Waltham,
Mass. at (617) 890 1155.

In a private conversation, one person suggested talking to Masscomp.  I never
got the chance.

For reference, here is the request I originally sent out:

	Newsgroups: net.lang.c,net.micro,net.wanted
	Subject: Wanted:  High-quality 68000 C compiler
	Posted: Wed Aug 15 08:19:09 1984

	I am interested in information about high-quality C compilers for the
	MC68000.  I need a production-quality compiler that produces good code -
	the more it optimizes, the better.  The compiler:

	    - Must be available today or within the next 3 months.  (Given the
		need for "production quality", if it's not available today it
		would have to be in late field test.  People with great slide
		shows and no working code need not apply.)

	    - Must produce code that can run stand-alone and is ROM-able
		(perhaps with some manipulation of the code or the compiler
		output).

	    - Should preferably run as a cross-compiler on a VAX running VMS,
		but other arrangements can be made if necessary.

	Good debugging support would, of course, be a plus, but we can live
	without it.

	We are willing to pay what's necessary for such a tool if we can find
	it.

	As a point of information, we currently use the Whitesmith
	cross-compiler.  The code it produces is so bad that we've felt
	confident in promising to find a compiler that will do 20% better
	(code size reduction).  I think even more is possible.

	Any information would be appreciated.

	Please do not reply to the net.  Reply to one of the addresses given
	below; I will sumarize the responses and post them to net.micro and
	net.lang.c in about two weeks.
							-- Jerry

			decvax!decwrl!rhea!rani!leichterj	(UUCP)
			leichterj%rani.dec@decwrl.arpa		(Internet)

I'd like to be fair to Whitesmith, by the way:  While they don't produce very
good code, they do provide a pretty reliable compiler, plus a good collection
of tools - and they are very inexpensive.

The rest of this note contains copies of the messages I received.  I've edited
them very slightly, and sorted them by the compiler they refer to.  I've also
inserted some remarks, set off in [* - *] pairs.

Thanks to everyone who responded.  I found the information very useful, and
hope this summary is useful to you.  I would, of course, be happy to receive
any further information, or hear about any mistakes.
							-- Jerry

*****Green Hills:

From: RHEA::DECWRL::"rick@seismo.ARPA" "Rick Adams" 16-AUG-1984 11:57
Return-Path: <rick>

I was pretty impressed with the code produced by the C compiler of a company
called "Green Hills" (I don't have the address, sorry).

It's one of the better ones around and I've heard rumors to the effect that
Sun Microsystems uses their compiler.

It's certainly worth a look.

---rick

---------
From: RHEA::DECWRL::"brownell@harvard.ARPA" "Dave Brownell" 16-AUG-1984 12:36

The best we found as of last year this time, now in production but they are
still doing work on it, is by "Green Hills Software".  It does a bit much
register shuffling, but unless they get it out they lose lots of money.  It
does a reasonable job of putting things in registers and has some reasonable
loop optimizations.

Our OS speeded up by 20% when we recompiled it with their compiler; the size
decreased by about 40K (out of 256K).  The one we were using was the bare MIT
compiler, albeit with bug fixes.

Of course we DID have to worry about the loop optimizations removing all the
device register manipulations ...

I'm not saying it's God's Gift to Us Programmers, but only that it's the best
we found on a reasonable search last year this time.

Dave Brownell
Sequoia Systems Inc

---------
[* Additional correspondence with Dave: *]

From: RHEA::DECWRL::"sequoia!brownell@harvard.ARPA" "Dave Brownell" 17-AUG-1984 16:56

A person (programmer, methinks) at GRH is

    Dan O'Dowd
    Green Hills Software
    (818) 796-6543

Another person is Carl Rosenberg (last name may be wrong) ... the reason
I mention him is that I have a mail address for him:

    ...harvard!sequoia!aphasia!carl

I'd be interested in hearing what you have to say about the compiler
after you look at it.  Do you have any other leads on good 68K C compilers?

	Dave Brownell
	Sequoia Systems Inc.
	sequoia!brownell@harvard.ARPA

---------
From: RHEA::DECWRL::"sequoia!brownell@harvard.ARPA" "Dave Brownell" 21-AUG-1984 17:26

I'm glad other people seem to like them!!  There's been a bit of concern over
here that Green Hills C might not improve system performance enough.  I guess
that's due to the high standards here ...  they do some interesting
optimizations.  Like, if they know that the range of a variable is 0 <= X <=
100 they would do a byte fetch even if it's an 'int' !!

	[* Remarks about Intermetrics elided here, see below *]

Keep me posted ...

	Dave

---------
From: RHEA::DECWRL::"dual!mats" 17-AUG-1984 10:08

My first choice, based only on brief usage, is to go talk to Green Hills.

[* Comments about several other compilers elided; see below, under "Others" *]

	    Mats Wichmann
	    Dual Systems Corp.
	    ...{ucbvax,amd,ihnp4,cbosgd,decwrl,fortune}!dual!mats
---------
From: RHEA::DECWRL::"flairvax!kissell" "Baba ROM DOS" 17-AUG-1984 12:49

Talk to Green Hills Software.  They're in Orange county somewhere, phone (213)
796-6543.  We have a one that runs under UNIX. I don't know about VMS.

Kevin D. Kissell
Fairchild Research Center
Advanced Processor Development
uucp: {ihnp4 decvax}!decwrl!\
                             >flairvax!kissell
    {ucbvax sdcrdcf}!hplabs!/

---------
From: RHEA::DECWRL::"decvax!allegra!hammond" "Rich A. Hammond" 17-AUG-1984 14:37
Return-Path: <decvax!allegra!hammond>

Jerry,
Try looking at the Green Hills compiler.  It is a cross compiler, I think it
will run under Berklix on a VAX, they might have a VMS version.  They make
great claims about it and when we typed in the single benchmark they sent and
compiled it with an internal AT&T 68k compiler (similar to the SGS 68k stuff
AT&T sells) the Green Hills was better.
One of the neat things about the compiler was that it tried to keep locals in
registers, even if they weren't declared register.  This is a great help in
porting code, since we found we could get a 10% reduction in code size on the
AT&T compiler simply by declaring as many as possible of the heavily used
local variables as registers.  The problem with modifying all the source is
obvious, it is much nicer to have the compiler do it automatically.
Problems: The compiler generated assembly language output.  That wasn't a
problem for us because we had the nifty System 5 loader which allows you to
specify sections at any addresses you choose.  We would have been upset if it
hadn't produced assembly code.
Caveats: The most obvious optimization that we couldn't make was to use short
(16 bit) constant addresses for globals and function names.  This was a
problem with the loader and not the compiler, but you might check about it on
any compiler you consider.  Most loaders insist on maximum length (i.e. 32
bits) for addresses, what we really wanted was to use 16 bit addresses for
everything from -32k to +32k and 32 bit addresses for objects elsewhere.  We
didn't find anything that could do that.

Rich Hammond		allegra!mouton!hammond

---------
From: RHEA::DECWRL::"decvax!felix!wes" "Wes Chalfant" 20-AUG-1984 03:40
Return-Path: <decvax!trwrb!felix!wes>

We have been using a compiler from a company in Pasadena, Calif.  called Green
Hills for about 4 months and and have found the code generated about 25%
better than that generated by the MIT pcc-derived compiler (which may have
been the basis for the Whitesmith's compiler -- the code generated by the
Whitesmith's compiler seems to be comparable).  Their address and phone number
are:

	Green Hills Software
	55 N. St. John Ave.
	Pasadena, CA 91103
	(213) 796-6543

This compiler generates assembly code in either the MIT or Motorola formats.
Assuming you are a 4.1 licensee, I can give you a version of the 4.1 "ld"
program that has been modified to allow specification of the base addresses
for the text, data and bss segments -- with appropriate startup code, this can
(and has) been used to generate ROM resident code.

	Wes Chalfant, FileNet Corporation
	{ucbvax,decvax}!trwrb!felix!wes

---------
From: RHEA::DECWRL::"decvax!wivax!bazelman" 20-AUG-1984 12:42
Return-Path: <decvax!wivax!bazelman>

The people at Green Hills Software have a nice 68000 compiler and Cross-
compiler that runs under UNIX and VMS.  They can be reached at (213) 796-6543.
There is also a nice source level debugger available from Third Eye Software
(415) 321- 0967.  These two tools work together.

							Rudy Bazelmans
							Wang Institute/Labs

---------
From: RHEA::DECWRL::"decvax!genrad!harvard!brown" "Bob Brown" 21-AUG-1984 00:31
Return-Path: <decvax!genrad!wjh12!harvard!brown>

I have heard that the Green Hills 68000 C compiler produces the best code
of any currently available.

				bob
---------
From: RHEA::DECWRL::"decvax!hplabs!hpfcla!hpdcdb!mike" 23-AUG-1984 01:05
Return-Path: <decvax!hplabs!hpfcla!hpdcdb!mike>

Check out Greenhill Software in Pasadena, CA. They have what appears to be a
very good quality retargetable compiler running on a VAX. The price, however,
is steep.

			M.F. McNelly
			hplabs!hpfcla!mike
---------
*****Intermetrics

From: RHEA::DECWRL::"ihnp4!inmet!porges" 17-AUG-1984 03:30

Intermetrics has available (NOW) a 68000 C cross-compiler that produces
ROM-able code and meets your other requirements as you descibed them.  It runs
under VMS and Vax Unix (b4.1), and has been in the field since last August.
Contact us at  (617) 661-0072 and ask for Deborah Sears.

					-- Don Porges
					...harpo!inmet!porges
					...hplabs!sri-unix!cca!ima!inmet!porges
					...yale-comix!ima!inmet!porges

---------
From: RHEA::DECWRL::"decvax!genrad!charlie" "Charlie Havener" 20-AUG-1984 22:14
Return-Path: <decvax!genrad!charlie>

Try Intermetrics in Cambridge Mass. I believe they have what you want.
617-661-1840

---------
From: RHEA::DECWRL::"ihnp4!uw-beaver!ssc-vax!eve@ssc-bee" "Michael Eve" 21-AUG-1984 01:38

We have just received Intermetrics "InterC" compiler.

This is a cross-compiler running under Unix which can generate code for either
an 8086 or a 68000. We are using the 8086 version, but do not yet have enough
experience to rate the compiler.

Intermetrics claims to have implemented C ala K&R including the preprocessor
and runtime library.  There are, however, extensions and restrictions which
are summarized in the documentation.

I suggest you give Intermetrics a call at (617) 661-1840.

Mike Eve

---------
From: RHEA::DECWRL::"sequoia!brownell@harvard.ARPA" "Dave Brownell" 21-AUG-1984 17:26

	[* Remarks about Green Hills elided here, see above *]

Re Intermetrics:  they promised a lot when we tried to evaluate them.  They
were still in development, though, and buggy; given the hassles we had in
dealing with Intermetrics, we scratched them off our list.  They could well be
more together, now that it's a released product; I tell you this since your
original posting implied a need for a high quality, stable compiler right NOW.

Keep me posted ...

	Dave

---------
*****Amsterdam Compiler Kit

From: RHEA::DECWRL::"decvax!mcvax!vu44!tjalk!sater" 17-AUG-1984 11:02
Return-Path: <decvax!mcvax!vu44!tjalk!sater>

Have you looked at the Amsterdam Compiler Kit?  I am biased of course since I
helped produce it, but it is available, we think we generate good code and it
is a lot more then just a C-compiler for the 68000. Look in CACM September '83
for an overview article.

			Hans van Staveren
			Vrije Universiteit
			Amsterdam
			Holland
---------
From: RHEA::DECWRL::"ihnp4!uiucdcs!uiucdcsb:husmann" "Harlan Husmann" 17-AUG-1984 11:45

Have you check into the Amsterdam Compiler Kit?  I have no experience with it;
all I know about is what I've read.  It may be worth checking into, however.

References: "A Practical Tool Kit for Making Portable Compilers"
            Tanenbaum, et al.
            CACM V.26, N.9 (Sept 83)

            "Does anybody out there want to write HALF of a compiler?"
            Tanenbaum, et al.
            SIGPLAN, V.19, N.8 (Aug 84)

Harlan Husmann
{pur-ee,ihnp4}!uiucdcs!husmann

---------
From: RHEA::DECWRL::"decvax!mcvax!ace!willemw" 23-AUG-1984 13:22
Return-Path: <decvax!mcvax!ace!willemw>

From:	Willem Wakker
	ACE Associated Computer Experts bv,
	NZ. Voorburgwal 314
	Amsterdam
	Phone +31 20 262400
	Telex 11702 ace

TO:	Mr. Jerry Leichter

Dear Mr. Leichter,

We have the C compiler for the MC68000 that you are looking for.  This (UNIX)
C compiler runs on any UNIX system (or UNIX look alike) and under VMS on the
VAX.  The C compiler forms with our F77 compiler and our Pascal compiler a
coherent set of compilers for the MC68000, all sharing the same code
generator.  The F77 compiler is the first UNIX F77 compiler AND the first F77
compiler for the MC68000 that has been validated by the FSTC (the Federal
Software Testing Centre) in the USA.

The compilers produce assembly source in a format compatible with the standard
MOTOROLA format for the instructions and addressing modes, but with UNIX like
pseudo ops. A conversion program to other formats (e.g. OASYS) is available.
Our current object format is the classical UNIX 'a.out' format, the UNIX
SYSTEM 5 COFF format will be available within a few weeks.

Price: C front-end, F77 front-end, Pascal front-end and MC68000 codegenerator
cost Dfl 2400.- each, so the price of a complete (binary) C compiler is Dfl
4800.-
Note: for the VMS version, a (binary) UNIX license for the VAX is needed.

---------
******AT&T

From: RHEA::DECWRL::"gwyn@Brl-Vld.ARPA" "Doug Gwyn (VLD/VMB)" 16-AUG-1984 19:48

The MC68000 Software Generation System from AT&T is reputed to be quite good.
I have the documentation but not the software itself.  It likes to run on UNIX
System V but can undoubtedly be ported to other UNIX-like environments.

---------
From: RHEA::DECWRL::"ihnp4!ihnp1!bentley!dfh" "DF Hoerl" 17-AUG-1984 00:13

ATT Technologies has a great one - it runs under UNIX and generates great
code, optimizes it, etc.  Call them (ATT Tech).

	David Hoerl

---------
From: RHEA::DECWRL::"ihnp4!sftri!jss" 17-AUG-1984 03:31

ATT has, I believe, released a 68000 C compiler.  I know it has been released
as a cross compiler under UNIX (Although I don't know what machine it cross
compiles from.)  Code quality is essentially the same as the UNIX C Compilers.
(I don't know if you consider this production quality.)  I also don't know how
to get one, but presumably you can find some ATT marketing somewhere.

Jerry Schwarz
ATT Bell Labs
Summit, NJ
201-522-6252

---------
From: RHEA::DECWRL::"decvax!allegra!sfbc!ljg" 23-AUG-1984 19:47
Return-Path: <decvax!allegra!sfbc!ljg>

I wish to submit the AT&T 68000 Software Generation System.  It is a product.
It can be bought today (call 800-828-UNIX for pricing info. and to order).
The whole software package includes pre-processor, compiler, optimizer,
assembler, link editor (ld) (you can put almost anything anywhere you want),
nm, disassembler, dump, size, strip, archiver (ar), lorder, and manual pages.
(there is also a convert program for changing byte order.) This package is
guaranteed to run on UNIX (TM of AT&T) on VAX (TM of Digital Equip. Corp.)
11/780 and 11/750.  Since you specify VAX VMS, I'm not sure how helpful this
is to you.

If I can be of service, don't hesitate to call ( (201)522-6029 ) or mail to me
(the path should be something like decvax!allegra!btlunix!ljg or
decvax!allegra!sfbc!ljg).  I accept collect calls, and my hours tend to be
late ones.

Leora Gregory
AT&T Bell Laboratories
Summit Facility rm. E-314
190 River Rd.
Summit NJ  07901

---------
******Others

From: RHEA::DECWRL::"mlsmith@NADC" 16-AUG-1984 11:39

	We just had a demo from Emulogic on a development system including
Compiling and debugging. Since the system is based on the DEC Pro computer,
it likes talking to Vaxen and will provide the tools you require.

					good luck,
					mlsmith@nadc.ARPA

[* Actually, it's Emulogic we've been using.  They have traditionally used the
Whitesmith compiler; recently, they've developed their SLICE system, which
gives you things like source-level debugging - very neat, but the compiler is
basically unchanged (well, a little better).  For some reason, the SLICE
environment restricts you to 6-char globals, while the old one allowed 8 - we
had to munge a lot of code.

Tektronix is promising a similar debugging environment for their emulators,
but we haven't seen it working yet. *]

---------
From: RHEA::DECWRL::"amd!hpda!hplabs!ucbvax!SHahn@SUMEX-AIM.ARPA" "Sam Hahn" 16-AUG-1984 22:27

Have you looked at the DRI C compiler?  No floats, and only under cp/m-68000,
but reputedly close to standard.  I've not run into any serious problems with
it.

I know people using Whitesmith C, and it is MUCH closer to K&R than
Whitesmith, as well as producing better code.
					-- sam hahn
---------
From: RHEA::DECWRL::"dual!mats" 17-AUG-1984 10:08

My first choice, based only on brief usage, is to go talk to Green Hills.  LPI
(Language Processors) also has a C compiler - I don't know about the quality
of their products at all. Philon is working on a C compiler - their results
with other languages have been excellent, but given the careful manner in
which they work, I doubt if they will be ready within three months. Then of
course there is AT&T, as part of the System V/68000 release.....IF you can
call an AT&T compiler production quality. The Green Hills and AT&T products
run as cross compilers also. I sympathise with you if you are stuck with
Whitesmiths - I have had my fling with them as well and have some idea of
their great quality.

	    Mats Wichmann
	    Dual Systems Corp.
	    ...{ucbvax,amd,ihnp4,cbosgd,decwrl,fortune}!dual!mats
---------
From: RHEA::DECWRL::"decvax!allegra!convex!hosking" "Doug Hosking" 18-AUG-1984 19:24
Return-Path: <decvax!allegra!convex!hosking>

Try Boston Systems Office
469 (?) Moody St.
Waltham Mass.
(617) 894-7800

I don't know the right person to contact, but Greg Morris or Steve Texin
should be able to point you in the right direction.

What I've heard from friends who work there sounds encouraging.  At the
moment, the product is pretty new, but sounds a lot better than what's
available from other places, and has the promise of becoming even better.  BSO
also has simulators, debuggers, cross compilers, cross assemblers and the like
for a LARGE variety of other micros.  Though their 68000 C compiler is new,
they've been producing their other products for at least 10 years worldwide.
They apparently have some special agreements with DEC, so be sure to tell them
where you're from.

I'd be very interested in hearing what you find out from other places, both
good and bad, since we may be in the market for such things in the near
future.  Good luck!

					Doug Hosking
					decvax!allegra!convex!hosking

[* I've known people who used the BSO stuff a year or two back.  I had forgot-
ten about them until just now, in editing this reply.  I'll have to give them
a ring if I have the chance... Sigh. *]

---------
From: RHEA::DECWRL::"amd!amdcad!resonex!tggsu" "Tom Gulvin Root" 23-AUG-1984 05:31

We have the Alcyon 68000 C compiler and it not only produces reasonably good
code, it compiles almost as fast as our 4.2 native compiler on the vax. It
doesn't have the greatest library in the world, but such is life...

	Alcyon Corporation
	8716 Production Avenue  (cute, huh?)
	San Diego, CA  92121
		(619)578-0860   (We talked with Bill Allen, VP Software)

Tom Gulvin - Resonex, Inc. - Sunnyvale, CA - (408)720-8600

---------
From: RHEA::DECWRL::"allegra!philabs!aecom!mberste" "mpoppers @ aecom" 28-AUG-1984 00:54

	Off the top of my head, I remember that the Sages (II and IV) support
C in the p-system environment, and they do use a 68000 processor.

					Michael Poppers
	     {philabs,pegasus,rocky2,spike,ihnp4,cucard} ! aecom ! poppers

P.S.    1) Please forgive any mailing attempts besides this one.
	2) Any reply has to go to aecom/mberste C/O me until my acct. comes
back up on Sept. 11. Ta ta!

---------
******A Request
From: RHEA::DECWRL::"decvax!mcvax!vu44!jack" 19-AUG-1984 19:15
Return-Path: <decvax!mcvax!vu44!jack>

Don't post the results to net.micro, please post them to net.micro.68k.
Net.micro seems to be taken over by atari and commodore, while net.micro.68k
addresses a more serious group of people interested in the 68000.

	Jack Jansen, {philabs|decvax}!mcvax!vu44!jack
PS: Sorry, I don't know a compiler for you.

---------
[* Since the original promised a response in net.micro, I've posted there, but
I've also added net.micro.68k. *]