Related articles |
---|
DSP C Compiler Question??? singhvk@eecg.toronto.edu (Vijaya Singh (Vij)) (1991-10-01) |
Re: DSP C Compiler Question??? pete@oakhill.sps.mot.com (1991-10-02) |
Re: DSP C Compiler Question??? mcdowell@exlog.com (1991-10-03) |
Re: DSP C Compiler Question??? megauthi@watcgl.waterloo.edu (1991-10-06) |
Newsgroups: | comp.dsp,comp.compilers |
From: | megauthi@watcgl.waterloo.edu (Marc E. Gauthier) |
Keywords: | DSP, C |
Organization: | University of Waterloo |
References: | 91-10-007 91-10-011 |
Date: | Sun, 6 Oct 1991 21:28:21 GMT |
In article 91-10-011 pete@oakhill.sps.mot.com (Pete Percosan) writes:
>> I don't (yet!) have access to any of these compilers, I'm curious
>> as to how "poor" the results are. That is, can these compilers take
>> advantage of or effectively utilize:
>[...]
>> - dual data memory banks
> If, by dual memory, you mean dual DATA memory (the X and Y data space
>of the DSP56000/1), the current Motorola compiler will not take full advantage.
>The primary reason for this is due to the run-time overhead that would be
>required to dynamically test pointers (i.e. does a pointer point to X or Y
>data space?).
The solution to this would be to implement pointer type modifiers, much in
the same way as Turbo C does with "near" and "far" pointers. Except in
this case, you'd probably have "X", "Y", "generic data" (X or Y),
"Program", and "generic" (X or Y or PROG) pointers. But since you're
basing your compiler on GNU GCC, I don't know how cleanly this can be
done. It would be extremely useful, however.
E.g., you could have "xdata" and "ydata" modifiers (that work a bit like
"const", "volatile" and other modifiers), and say,
static ydata int table1[256]; /* allocated in Y data space */
static xdata int table2[256]; /* allocated in X data space */
static int table3[256]; /* allocated in default (?) data space */
...
{
ydata int *p1;
xdata int *p2;
for (p1=table1,p2=table,n=256; n>0; p1++,p2++,n--)
*p2 += *p2 * *p1;
...
}
It would probably not be acceptable that the default pointer type be the
generic pointer, which is expensive to use, so it should be possible to
tell the compiler what is the default pointer type (e.g., "xdata"), and
use a specific modifier for generic pointers (e.g., "genericdata" or
"generic"). There is perhaps still an advantage to using generic pointers
as the default type (if you use modifiers where speed is important), which
is that data items would be by default allocated in either space as the
compiler sees fit.
I think one nice thing about generic pointers on the DSP56001 is that they
wouldn't take more space than other pointers, since only 16 bits are
significant, yet everything is stored in 24 bits. (is this correct?)
><< comp.compiler guys fade out ... >>
>
>Putting on my marketing hat, I can say that our current set of compilers for
>[...]
Could you give a brief idea of the prices (assuming this is of general
interest), whether there are special prices for educational institutions
or students, and whether the prices might become lower in the future, etc.?
-Marc
--
Marc E. Gauthier megauthier@watcgl.waterloo.edu
Computer Graphics Lab, University of Waterloo [129.97.140.64] +1 519 888 4548
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.