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