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,
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
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
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"