Hi all, Last year i was mentored by Chris Lattner at GSoC and i created the Mips back-end for LLVM. The back-end is still experimental (working with simple benchmarks only) and this year i would like to improve it as my GSoC proposal. Mips is still fairly used nowadays in a lot of devices - routers, wireless cards, PSP, PS2 - and it would be great to have a stable mips backend for LLVM. General improvements : + Support little-endian Mips (mipsel) + Improve instruction scheduling to better support non interlock targets. + Support more subtargets. Roadmap : 1) Define a list of benchmarks and get all working. 2) Add float-point support. 3) Repeat 1). 4) Get llvm-gcc as cross-compiler fully working for Mips 5) add Mips32 complete ISA 6) choose one more subtarget to add support (Mips64/PSP/PS2). Which one you would say is more important? Using llvm to generate code for PSP would be very fun! Opinion and comments would be nice. I'll leave the timeline proposal to the students application at Google, i just want some feedback for now! Cheers, -- Bruno Cardoso Lopes ( now @ Cocos Island ) http://www.brunocardoso.cc ++ The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom + Isaac Asimov
On Mar 18, 2008, at 10:46 PM, Bruno Cardoso Lopes wrote:> Hi all, > > Last year i was mentored by Chris Lattner at GSoC and i created the > Mips back-end for LLVM. The back-end is still experimental (working > with simple benchmarks only) and this year i would like to improve it > as my GSoC proposal. Mips is still fairly used nowadays in a lot of > devices - routers, wireless cards, PSP, PS2 - and it would be great to > have a stable mips backend for LLVM.Hi Bruno! I think that improving the MIPS backend would be great. However, instead of "general improvements", I'd strongly suggest focusing your efforts on a specific use (e.g. PSP, PS2 or whatever else you have to play with). Based on that, I'd work on getting the rest of llvm-test to work, adding subtarget features (FP etc) needed for that specific CPU, then working on performance etc. I think this would be a much more useful and focused project than just "make the backend better". This will also hopefully allow us to say "llvm supports MIPS for the PSP" (or whatever), instead of just saying "we support some mips chips". What do you think? -Chris> > > General improvements : > > + Support little-endian Mips (mipsel) > + Improve instruction scheduling to better support non interlock > targets. > + Support more subtargets. > > Roadmap : > > 1) Define a list of benchmarks and get all working. > 2) Add float-point support. > 3) Repeat 1). > 4) Get llvm-gcc as cross-compiler fully working for Mips > 5) add Mips32 complete ISA > 6) choose one more subtarget to add support (Mips64/PSP/PS2). > Which one you would say is more important? Using llvm to > generate code for PSP would be very fun! > > Opinion and comments would be nice. > I'll leave the timeline proposal to the students application at > Google, > i just want some feedback for now! > > Cheers, > > -- > Bruno Cardoso Lopes ( now @ Cocos Island ) > http://www.brunocardoso.cc > > ++ The saddest aspect of life right now is that > science gathers knowledge faster than society > gathers wisdom + Isaac Asimov > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> > I think this would be a much more useful and focused project than just > "make the backend better". This will also hopefully allow us to say > "llvm supports MIPS for the PSP" (or whatever), instead of just saying > "we support some mips chips". What do you think?FWIW I would highly suggest not going with the ps2 chip (emotion engine) as the next thing for the backend. It is more than a bit complicated. -eric
On Thu, Mar 20, 2008 at 2:22 AM, Chris Lattner <sabre at nondot.org> wrote:> Hi Bruno!Hi Chris,> I think that improving the MIPS backend would be great. However, > instead of "general improvements", I'd strongly suggest focusing your > efforts on a specific use (e.g. PSP, PS2 or whatever else you have to > play with). > > Based on that, I'd work on getting the rest of llvm-test to work, > adding subtarget features (FP etc) needed for that specific CPU, then > working on performance etc. > > I think this would be a much more useful and focused project than just > "make the backend better". This will also hopefully allow us to say > "llvm supports MIPS for the PSP" (or whatever), instead of just saying > "we support some mips chips". What do you think?You're right, the focused approach is more likely to get better results! I'll focus on PSP at the proposal, it seems the better choice too me, it would be nice to hear "llvm supports MIPS for the PSP" ;) -- Bruno Cardoso Lopes ( now @ Cocos Island ) http://www.brunocardoso.cc ++ The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom + Isaac Asimov