[comp.dsp] C compilers for DSPs

sifakis@sono.uucp (George Sifakis) (11/06/90)

I'm looking for information on C development tools (compilers,
debuggers) for DSPs specifically the TMS320C31, such as who
has them, their quality and any experiences using them.
Any help will be greatly appreciated.
Thanks

George Sifakis			ACUSON
(415)969-9112			1220 Charleston Road
..!sun!sono!sifakis		Mountain View, CA 94039
sifakis@sono.uucp

scholten@esseye.UUCP (David Scholten) (11/07/90)

From article <1990Nov5.230918.17597@sono.uucp>, by sifakis@sono.uucp (George Sifakis):
> I'm looking for information on C development tools (compilers,
> debuggers) for DSPs specifically the TMS320C31, such as who
> has them, their quality and any experiences using them.
> Any help will be greatly appreciated.
> Thanks
> 
> George Sifakis			ACUSON
> (415)969-9112			1220 Charleston Road
> ..!sun!sono!sifakis		Mountain View, CA 94039
> sifakis@sono.uucp


Me too,  I am also interested in finding compilers for the DSP56000 and the
AD2100 series.  Please post responses to the net.

Dave Scholten

jbuck@galileo.berkeley.edu (Joe Buck) (11/07/90)

In article <1990Nov5.230918.17597@sono.uucp>, sifakis@sono.uucp (George Sifakis) writes:
> I'm looking for information on C development tools (compilers,
> debuggers) for DSPs specifically the TMS320C31, such as who
> has them, their quality and any experiences using them.
> Any help will be greatly appreciated.

Texas Instruments supplies a C compiler; I used it extensively.
As of version 2.10, the code quality was very poor.  Because of
the close resemblance of the register sets and addressing modes
of the TMS320C30 family to the Motorola 68000 family, TI could
have done far better by starting with a good 68000 compiler and
porting it, or with any other C compiler, since whoever wrote
it made no attempt at any kind of optimization at all.

It is possible to use the compiler for some purposes by heavy
use of register variable declarations and inline assembly code.
But many of the excuses given for poor DSP C compilers simply
don't apply in the case of the C30; it is close enough to a
general purpose CPU that a good optimizing C compiler could be
written for it.

If TI has improved the compiler I'd like to hear about it;
however, version 2.10 is nothing to be proud of.


--
Joe Buck
jbuck@galileo.berkeley.edu	 {uunet,ucbvax}!galileo.berkeley.edu!jbuck	

hvs@ee.upenn.edu (H.V. Sorensen) (11/08/90)

I just received a new compiler (version 4.00) for the TMS320C30 so they
are working on the problem. I have not used it enough to make comments
on its efficiency however. They also released version 1.3 of the C30
simulator at the same time.

Henrik Sorensen
******************************************************************************
*   Henrik Sorensen               Department of Electrical Enginering        *
*   Internet: hvs@ee.upenn.edu    University of Pennsylvania                 *
******************************************************************************

richf@adiron.UUCP (Rick Fanta) (11/08/90)

jbuck@galileo.berkeley.edu (Joe Buck) writes:

>Texas Instruments supplies a C compiler; I used it extensively.
>As of version 2.10, the code quality was very poor.  Because of
>the close resemblance of the register sets and addressing modes
>of the TMS320C30 family to the Motorola 68000 family, TI could
>have done far better by starting with a good 68000 compiler and
>porting it, or with any other C compiler, since whoever wrote
>it made no attempt at any kind of optimization at all.

>It is possible to use the compiler for some purposes by heavy
>use of register variable declarations and inline assembly code.
>But many of the excuses given for poor DSP C compilers simply
>don't apply in the case of the C30; it is close enough to a
>general purpose CPU that a good optimizing C compiler could be
>written for it.

>If TI has improved the compiler I'd like to hear about it;
>however, version 2.10 is nothing to be proud of.

Agreed.  I know next to nothing about compiler optimizations, but I do know
that the code the C compiler put out was lousy.  It tends to use much fewer
registers than it has available (used ~3-4 of the Auxiliary Regs when it had
8 available on the C30, extended floating-point register usage was similar). 
Instead, it kept putting results on a local stack it maintained on top of
the current stack at (subroutine) entry.

Also, memory usage on the simulator is limited to about 1 64K segment.  This
is really annoying if you want to try to crunch on a few decent size images
simultaneously.

There's much more, but my brain is in a fog today.


------------------------------------------------------------------------------
Rick Fanta 	PAR Technologies (richf@adiron.uucp)

"... She said that she was working for the ABC news,
     it was as much of the alphabet as she knew how to use ..."
	- Elvis Costello

adcock@rocket.uucp (John Adcock) (11/09/90)

Version 4.00 of the tms320c30 C compiler does actually do
optimization.  That is to say that is has an optimization
switch with several levels of optimization (it didn't before).

We just got it here and at least one person I know who's used
it got very dramatic speedups over what he was getting with
the 3.00 compiler:
(these times are for the particular algorithm he is running)
version 3.00 : 48 ms 
version 4.00 : 21.3 ms (without optimization)
version 4.00 : 8.7 ms  (with all available optimization)

On the other hand, the programs I'm running on the C30 call
heavily on a library of assembler coded vector routines and I
saw no speedup.  

If you want speed, code it in assembler.  No compiler is going
to figure out that the loop you wrote to do a dot product can
be set up to use a parallel multiply/add instruction.

John Adcock                                     Lockheed Sanders Inc.
Member of Technical Staff                       144 Daniel Webster Hwy.
Signal Processing Center of Technology          Room MER24-158C
                                                Merrimack, NH.  03054  

  (usenet)      ...!uunet!rocket!adcock         phone (603) 885-2803
  (internet)    <adcock@rocket.sanders.com>	fax   (603) 885-0631
--
John Adcock                                     Lockheed Sanders Inc.
Member of Technical Staff                       144 Daniel Webster Hwy.
Signal Processing Center of Technology          Room MER24-158C
                                                Merrimack, NH.  03054  

  (usenet)      ...!uunet!rocket!adcock         phone (603) 885-2803
  (internet)    <adcock@rocket.sanders.com>	fax   (603) 885-0631

jw7348@medtron.medtronic.com (Jeff Wilkinson) (11/19/90)

In article <1990Nov6.165814.5669@esseye.UUCP> scholten@esseye.UUCP (David Scholten) writes:
>From article <1990Nov5.230918.17597@sono.uucp>, by sifakis@sono.uucp (George Sifakis):
>> I'm looking for information on C development tools (compilers,
>> debuggers) for DSPs specifically the TMS320C31, such as who
>> has them, their quality and any experiences using them.
>> Any help will be greatly appreciated.
>> Thanks
>> 
>> George Sifakis			ACUSON
>> (415)969-9112			1220 Charleston Road
>> ..!sun!sono!sifakis		Mountain View, CA 94039
>> sifakis@sono.uucp
>
>
>Me too,  I am also interested in finding compilers for the DSP56000 and the
>AD2100 series.  Please post responses to the net.
>
>Dave Scholten

TI publishes a great reference for DSP development tools "TMS320 Family
Development Support: Reference Guide".  A substantial percentage is devoted to
3rd party vendors offering support for TI processors (a number of them also
support Mot and others.  Ask when you call).  According to a TI rep I talked to
last week, the book has just been supplemented with new information.  Contact
the a local TI sales office or their DSP Hotline at (713) 274-2320.

jeff wilkinson
wilk@medtronic.com

-- 
----------------------------------------------------------------------------
Jeff Wilkinson                          wilk@medtronic.com
Medtronic, Inc.
7000 Central Ave NE                     Voice +1-612-574-3770