On Wed, Mar 18, 2009 at 8:17 PM, Albert Cohen <albert.co...@inria.fr> wrote:
> Antoniu Pop wrote:
> (...)
>>
>> The multiple backends compilation is not directly related, so you
>> should use a separate branch. It makes sense to go in that direction.
>
> Indeed.

Work has been going on for years in this direction, but it has never
gone very far.


> There has been some work in the area, using different approaches. I've been
> involved in one attempt, for the Cell, with Cupertino Miranda in CC.
>
> Cupertino: could the URL where to find documentation on your experiments,
> and the (old) patch to GCC and the (old) Cell SDK for that purpose?

What approach was taken in these experiments?


The most visible ongoing effort is the conversion from target macros
to target hooks (which is incomplete). The goal was to allow "hot
swapping" of backends.  This is still the most obvious, most complete,
and least unappealing (from a technical POV) approach IMHO. But Kaveh
showed at one point that the compile time penalty of even just the
partial conversion done so far is a few percentage points (somewhere
between 3% and 5%, I don't recall the details). And also it's not nice
and easy work so nobody is working on it actively AFAIK.

Another approach is taken in the MIPS backend, which can reset the
middle-end to swap between MIPS32 and MIPS16 AFAIU, but this looks
more like a hack to me than something that you want to do for really
different targets -- I mean, I guess MIPS16 and MIPS32 are both still
MIPS, but POWER and SPU are probably not similar enough for this
approach.

Ciao!
Steven

Reply via email to