Dear Mr Carruth,
I am Fernando Herrera. I work for the University of Cantabria (Spain).
We are interested in the microblaze branch of LLVM (preferently
Do you know if there is any available (even if unofficial
or out of the tree) branch which could work with LLVM 3.5 (or later)?
Maybe somebody in Xilinx?
Eventually, we could update it to make it work with
later LLVM versions, as long as we can afford that cost.
Many thanks in advance for any information you can give to us.
First of all, Thanks a lot for your answer!
I've been pseudo-maintaining the Microblaze code generator since it was
removed. It does compile, with recent TOT LLVM (last update was to LLVM
OK. I think it is worth for us to try it and likely sufficient for our
research purposes if it can deal with our use cases and if the performance
compared to thet gcc-based port is comparable.
Unfortunately, over time it has stopped being fully working, even for C
(C++ needs some atomic work as I recall). I suspect getting it
functional again wouldn't be too hard, I just haven't had time.
OK. In other words, "forget about C++" and "do not expect C
fully working, but getting it could be feasible for you", right?
In the latter case, I guess that some LLVM expertise is required.
What could we expect for getting it, days, weeks, months (assuming full
I tried to get someone at Xilinx interested in it, since maintaining it,
even to just keep compiling, takes a bit of time. They didn't seem to be
interested, and the only reason I've been keeping it up is that I seem
to have a stubborn streak.
maybe fortunately. It would be interesting to know their points.
In my view, it could be something very interesting for Xilinx, as long,
to my understanding, LLVM is becoming a kind of reference compiler for
research community, specially because it allows at some extend to
know about & control compiler behaviour. This, together the configurability
and controllability which provides FPGA at HW level, gives
a very competitive technology for controlling the whole SW/HW tool chain.
So, for instance, this can be very useful in the development of
embedded applications with hard real-time constraints.
If you're interested, the code is at http://ellcc.org.
OK. We will look into it.
Thanks a lot again for the info.