From: David Given on
On 03/04/10 18:02, Måns Rullgård wrote:
[...]
> Fortunately, most
> embedded systems are ARM or MIPS, both well supported by gcc and
> various commercial compilers. There is very rarely any need to stick
> with the outdated junk hardware vendors give you.

gcc doesn't produce brilliant ARM code --- if you compare it with
something like RVCT (ARM's own proprietary C/C++ compiler) you can see
just how much room for improvement there is. I've heard from a company
that produced a software 3D engine for ARM devices that simply
recompiling their code with RVCT produced a 30% improvement in frame rate.

OTOH gcc is free and RVCT is enormously expensive...

OTGH, we did have one customer whose development system was based on
Montavista Linux. The SDK for this costs around $25k per seat, which
they were expecting us to pay for. After finally persuading them to give
us a short-term evaluation license we discovered that what you got for
your money was actually gcc and Eclipse. *shrug*

The least bad commercial compiler I ever dealt with was for a deeply
obscure and short-lived processor called the ShBoom, a.k.a. the PSC1000.
This was a weird processor that was designed to run Forth and Java
bytecode more or less directly; it was stack-based, but also had about
32 registers, some of which were shared with a tiny CPU core that
handled memory refresh. Other features included the bottom half of an
FPU but not the top half, and an instruction encoding scheme that varied
depending on the alignment of the instruction. OTOH the compiler was
very fast and produced really good (and astonishingly tight!) code. I
have no idea who made it.

[...]
> The one bug I spent the longest time (almost a week) to find was
> caused by a Green Hills compiler. Since that time, I have a bit of a
> distrust for them. Other compiler bugs I've found were mostly in very
> obscure construct; this one was in a simple return statement.

I don't know Green Hills, but I did deal with a *different* customer
whose code was all compiled with ADS 1.2 --- a very old version of RVCT.
I spent a happy month or so finding bugs in that, mostly due to faulty
64-bit arithmetic. Fun, isn't it?

--
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────

│ "In the beginning was the word.
│ And the word was: Content-type: text/plain" --- Unknown sage
From: Måns Rullgård on
David Given <dg(a)cowlark.com> writes:

> On 03/04/10 18:02, M�ns Rullg�rd wrote:
> [...]
>> Fortunately, most
>> embedded systems are ARM or MIPS, both well supported by gcc and
>> various commercial compilers. There is very rarely any need to stick
>> with the outdated junk hardware vendors give you.
>
> gcc doesn't produce brilliant ARM code ---

I know that, but it's miles better than the code it produces for more
obscure targets.

> if you compare it with something like RVCT (ARM's own proprietary
> C/C++ compiler) you can see just how much room for improvement there
> is.

About 10% on average in my experience. In one extreme case RCVT
produced twice as fast code as gcc.

> I've heard from a company that produced a software 3D engine for
> ARM devices that simply recompiling their code with RVCT produced a
> 30% improvement in frame rate.

That big a difference is unusual, but I can believe it. I do suspect,
however, that the C code wasn't optimal. Well-tuned C code doesn't
generally exhibit that much variation.

> OTOH gcc is free and RVCT is enormously expensive...

My point is that there are an abundance of ARM compilers, all
ABI-compatible, so you can choose whichever one _you_ prefer.

> OTGH, we did have one customer whose development system was based on
> Montavista Linux. The SDK for this costs around $25k per seat, which
> they were expecting us to pay for. After finally persuading them to give
> us a short-term evaluation license we discovered that what you got for
> your money was actually gcc and Eclipse. *shrug*

Montavista is well-known for such scams. They even put a DRM-like
thing in their gcc. They still provided source code, so you could
easily remove it. I guess they were just doing their part collecting
the gullibility tax.

> The least bad commercial compiler I ever dealt with was for a deeply
> obscure and short-lived processor called the ShBoom, a.k.a. the PSC1000.
> This was a weird processor that was designed to run Forth and Java
> bytecode more or less directly; it was stack-based, but also had about
> 32 registers, some of which were shared with a tiny CPU core that
> handled memory refresh. Other features included the bottom half of an
> FPU but not the top half, and an instruction encoding scheme that varied
> depending on the alignment of the instruction. OTOH the compiler was
> very fast and produced really good (and astonishingly tight!) code. I
> have no idea who made it.

I can see why that CPU was short-lived :-)

>> The one bug I spent the longest time (almost a week) to find was

Allow me to further qualify that as software bug. I've spent more
time on some hardware bugs.

>> caused by a Green Hills compiler. Since that time, I have a bit of a
>> distrust for them. Other compiler bugs I've found were mostly in very
>> obscure construct; this one was in a simple return statement.
>
> I don't know Green Hills, but I did deal with a *different* customer
> whose code was all compiled with ADS 1.2 --- a very old version of RVCT.
> I spent a happy month or so finding bugs in that, mostly due to faulty
> 64-bit arithmetic. Fun, isn't it?

I've used that compiler, not fun. The good news is that the latest
version is still ABI-compatible (with the right flags), so you can
choose to use that instead.

--
M�ns Rullg�rd
mans(a)mansr.com
From: Kenny McCormack on
In article <Pine.LNX.4.64.1004012257170.32495(a)login01.caesar.elte.hu>,
Ersek, Laszlo <lacos(a)caesar.elte.hu> wrote:
....
>As someone suggested in your reddit submission, did you try andLinux /
>coLinux?
>
>http://andlinux.org/
>http://www.colinux.org/

Just out of curiosity, what is the difference between these two things?

I.e., andLinux seems to just be a thin wrapper around colinux. Very
thin, in fact; I can't tell what the value-added is (for andLinux).

--
(This discussion group is about C, ...)

Wrong. It is only OCCASIONALLY a discussion group
about C; mostly, like most "discussion" groups, it is
off-topic Rorsharch revelations of the childhood
traumas of the participants...

From: Ersek, Laszlo on
On Fri, 16 Apr 2010, Kenny McCormack wrote:

> In article <Pine.LNX.4.64.1004012257170.32495(a)login01.caesar.elte.hu>,
> Ersek, Laszlo <lacos(a)caesar.elte.hu> wrote:
>>
>> http://andlinux.org/
>> http://www.colinux.org/
>
> Just out of curiosity, what is the difference between these two things?
>
> I.e., andLinux seems to just be a thin wrapper around colinux. Very
> thin, in fact; I can't tell what the value-added is (for andLinux).

I tried neither, but the opening page of andlinux.org says,

----v----
[...] andLinux is a complete Ubuntu Linux system [...]

[...] coLinux is a port of the Linux kernel to Windows [...]
----^----

lacos