On Fri, Nov 18, 2005 at 05:50:52PM -0800, Chris Lattner wrote: > * This will not support <some target>! > > As describe above, we won't support every target that GCC currently > does. Three options are possible: > > 1. We (the GCC community) could build an LLVM to GIMPLE translator. > This would probably take about as much work as the GIMPLE -> LLVM > translator (about 4000 LOC), which is not a huge project. > 2. We could build an LLVM to RTL translator.
Let's run with the hypotheticals for a bit here... I have questions for both Chris and for GCC maintainers. Chris tells me that an LLVM->GIMPLE translator wouldn't have target dependencies. I'm not 100% sure I buy that, but I'll take it as given for now (if not they should be pleasantly small). So suppose we implement that. It seems like a much better choice than RTL anyway. (A) What bits of LLVM would we be bypassing, and how badly would we miss them? I know it has its own register allocation and instruction selection, and they have advantages and disadvantages relative to the existing ones. We could either take advantage of those as a framework to modernize GCC's, or move on with Andrew's new design to modernize GCC's. (B) What bits of GCC would we be bypassing, and how badly would we miss them? Presumably, many of the shiny new tree optimizers. Ow. But GCC was not in any state to do this sort of surgery a year ago, I think. -- Daniel Jacobowitz CodeSourcery, LLC