Suggested base version for adding a new backend?

Good morning,

What is the general consensus about using LLVM 2.9 vs tip of tree for developing new backends? Is LLVM 2.9 still recent enough to make forward porting easy once 3.0 comes out? Is tip of tree considered stable enough for non-core development?

My reason for asking is that a fellow grad student and I are about to start implementing a new backend for RISK-V - a research architecture developed here at UC Berkeley. We're looking to focus our work on the backend itself and do not currently intend to do core LLVM development. As such, we're looking for a base which is going to be stable to work with, but also easy to maintain as future releases come out.

Normally, I would be fairly confident in using LLVM 2.9 as a base, but I've been following the mailing lists for a while now and there seems to have been a fair amount of code churn and a whole new set of best practices with respect to backends. I've also seen a couple of posts asking about issues in 2.9 with responses that essentially came down to "use TOT". Together, this leaves me wondering if 2.9 is such a good base for development after all.

Thank you for taking the time to consider my question.

Philip Reames
Graduate Student
EECS, UC Berkeley

For anyone interested, the technical report covering the ISA for the RISK-V architecture can be found here:
http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-62.pdf

Personally I would use TOT.

Obviously my 2 cents

Garrison

I agree, I'd strongly recommend ToT as well.

-Chris

Hello Philip,

What is the general consensus about using LLVM 2.9 vs tip of tree for
developing new backends? Is LLVM 2.9 still recent enough to make
forward porting easy once 3.0 comes out?

Definitely no.

Is tip of tree considered stable enough for non-core development?

Yes. Note that 3.0 should be branched within a month