WANTED: One good retargettable compiler back end

Kim Lux <lux@diesel-research.com>
8 Dec 2005 02:33:42 -0500

          From comp.compilers

Related articles
WANTED: One good retargettable compiler back end lux@diesel-research.com (Kim Lux) (2005-12-08)
Re: WANTED: One good retargettable compiler back end ian@airs.com (Ian Lance Taylor) (2005-12-08)
Re: WANTED: One good retargettable compiler back end nkavv@skiathos.physics.auth.gr (Uncle Noah) (2005-12-08)
Re: WANTED: One good retargettable compiler back end gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-12-11)
Re: WANTED: One good retargettable compiler back end nr@eecs.harvard.edu (2005-12-29)
| List of all articles for this month |

From: Kim Lux <lux@diesel-research.com>
Newsgroups: comp.compilers
Date: 8 Dec 2005 02:33:42 -0500
Organization: Compilers Central
Keywords: code, question
Posted-Date: 08 Dec 2005 02:33:42 EST

We are attempting to retarget the sdcc ( http://sdcc.sourceforge.net/)
open source compiler to a new processor. (Freescale 68HC9S12X)

We looked at gcc, but think it is much better suited to general
purpose processors rather than 8/16 bit processors with limited
registers, Harvard memory maps, etc.

Sdcc has a good front end. It supports C with a number of extensions
associated with using it on "small devices". It is fairly widely used
and well tested. The sdcc front end generates "iCode" as its linkage
to the back end.

Sdcc's back end is less than stellar. Sdcc supports about half a
dozen devices. Each back end has been hand coded. Register
allocation is hit and miss. Optimization success varies from target
to target.

I'm looking for a replacement open source back end that is easily
retargetable to a number of different SMALL DEVICE processors.

To date, the best potential solutions I've seen is VPO. (
http://www.cs.virginia.edu/zephyr/vpo/ ) Unfortunately, VPO is NOT
open souce. Here is a very interesting paper on using vpo with a
small device: compiler.snu.ac.kr/papers/cases01-6.pdf

The thing I like about VPO is its use of rtl as the input to the
backend, during optimization, during register assignment and during
opcode selection. GCC uses rtl, but not quite like VPO does.

I've looked at TACK ( http://sourceforge.net/projects/tack/ ) It is an
interchangeable back end but writing another back end for a new
processor appears to be a lot of work and optimization is done in the
universal assembly language. I think optimization would be easier
with an rtl, where it mostly becomes arithmetic reduction and pattern

Does anyone know of any other open source backends for sdcc ?

Is anyone interested in developing a VPO like backend ?
Kim Lux, Diesel Research Inc.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.