LatticeMico32 (LM32) backend

Hi,

Would anyone be interested in developing a LatticeMico32 backend in LLVM?

LatticeMico32 [1] is an open source microprocessor core designed by Lattice
Semiconductor and typically used in FPGAs. It is comparable to the Microblaze
processor that you already support.

It is already supported by GNU Binutils and GCC (4.5+). It is used by the
Milkymist [2] and RTEMS [3] projects. The Milkymist project would like to use
the LLVM compiler toolchain as an alternative to GCC, which requires
developing a LM32 backend.

Thanks,
Sébastien Bourdeauducq

[1] http://www.latticesemi.com/mico32
[2] http://www.milkymist.org
[3] http://www.rtems.org

Just bringing that up as I did not get any reply so far.

Thanks,
Sébastien

Just bringing that up as I did not get any reply so far.

Resending the email isn't really productive; for the given question,
the lack of a reply should answer your question. Was there something
else you wanted to ask?

-Eli

I find this message unhelpful at best, if not purely arrogant. You are making
an open source compiler, I am making an open source processor: we are fighting
for the same cause, aren't we? I would have hoped for something else than such
a troll-ish attitude.

Sébastien

Resending the email isn't really productive; for the given question,
the lack of a reply should answer your question. Was there something
else you wanted to ask?

I find this message unhelpful at best

Try contacting the author of the Microblaze backend off-list (See
CREDITS.TXT) and see if he's interested. Maybe he is, but he wasn't
following LLVMdev lately.

, if not purely arrogant. You are making
an open source compiler, I am making an open source processor

I don't think anyone would reject a LatticeMico32 backend if you were to
submit it to LLVM when it is ready (assuming the license is compatible).

Best regards,
--Edwin

Hello Sébastien,

Making backends to LLVM is a significant amount of work. If you want somebody to do it for you, either offer some payment or do your own coding. Keep in mind that the bread-and-butter support for LLVM comes from Apple computer so unless the next iPad will start using softcores, be prepared to pursue the other courses of action I laid out.

I may be having to write a backend to the N68050 softcore soon but am busy writing my own LLVM-based compiler at the moment so don't expect me to jump up and down with excitement just because there is a new softcore that doesn't have a compiler for it. That is my perspective.

Now for the good news: LLVM is not just a compiler, it is a compiler framework. There are dozens of programming languages being based on LLVM. If you still decide to make an LLVM backend for your softcore, you can certainly find help here with your programming questions and TableGen problems.

--Sam

From: Sébastien Bourdeauducq <sebastien.bourdeauducq@lekernel.net>
To: Eli Friedman <eli.friedman@gmail.com>
Cc: llvmdev@cs.uiuc.edu
Sent: Mon, May 24, 2010 8:09:17 AM
Subject: Re: [LLVMdev] LatticeMico32 (LM32) backend

Resending the email
isn't really productive; for the given question,
the lack of a reply
should answer your question. Was there something
else you wanted
to ask?

I find this message unhelpful at best, if not purely arrogant.

You are making

an open source compiler, I am making an open source

processor: we are fighting

for the same cause, aren't we? I would have hoped

for something else than such

a troll-ish

attitude.

Sébastien

Making backends to LLVM is a significant amount of work. If you want somebody to do it for you, either offer some payment or do your own coding. Keep in mind that the bread-and-butter support for LLVM comes from Apple computer so unless the next iPad will start using softcores, be prepared to pursue the other courses of action I laid out.

Just to clarify the stuff: the building of the backend itself is only
half of the job. Another half is maintaining the backend, which should
be performed continuosly. Otherwise the backend will quickly become of
pretty "poor quality" and can be considered as a candiate for removal.