Hi Everybody, I'm working a project which requires assembly code for mips1 architecture for simulation purpose. I checked the latest LLVM3.2 version and found that the backend has been removed. I tried to replace the MIPS backed in LLVM3.2 by the old one in LLVM2.9 (which contains mips1) and adjust some routines to get the backend compiled. However, when llc is used to generate the assembly, there are some internal faults such as very large physical register id in the register allocation phase. Would anyone to give me some suggestions to bring the mips1 backend to the latest LLVM version in this case? Thank you very much! Best, Feng -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130425/bfc8ca8d/attachment.html>
If you want to create a version for the mips1 subtarget, going back in time will probably be a lot of work for you. If you want to modify the current version you might try the following: 1) Create a Mips1 predicate and use that to disable instruction patterns that match using non Mips1 instructions. 2) Use soft-float 3) You would need to reenable some commented out code used to implement conditional move instructions on Mips1 . You will see that in the Mips Isel lowering class. We chose to not support Mips 1 a while back so this is about as much as I can help you on this. Why not just use the llvm 2.9 backend and clang front end? Reed On 04/25/2013 07:03 PM, Feng Liu wrote:> Hi Everybody, > > I'm working a project which requires assembly code for mips1 > architecture for simulation purpose. I checked the latest LLVM3.2 > version and found that the backend has been removed. I tried to replace > the MIPS backed in LLVM3.2 by the old one in LLVM2.9 (which contains > mips1) and adjust some routines to get the backend compiled. However, > when llc is used to generate the assembly, there are some internal > faults such as very large physical register id in the register > allocation phase. > > Would anyone to give me some suggestions to bring the mips1 backend to > the latest LLVM version in this case? Thank you very much! > > Best, > Feng > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
My guess is he wants mips1 so that he doesn't have to worry about the patented mips instructions? At any rate, it will be a bit of work to enable a mips1 target and I doubt many people are interested, so it'll definitely be up to him to do the work. -eric On Fri, Apr 26, 2013 at 10:15 AM, Reed Kotler <rkotler at mips.com> wrote:> If you want to create a version for the mips1 subtarget, going back in time > will probably be a lot of work for you. > > If you want to modify the current version you might try the following: > 1) Create a Mips1 predicate and use that to disable instruction patterns > that match using non Mips1 instructions. > 2) Use soft-float > 3) You would need to reenable some commented out code used to implement > conditional move instructions on Mips1 . You will see that in the Mips Isel > lowering class. > > We chose to not support Mips 1 a while back so this is about as much as I > can help you on this. > > Why not just use the llvm 2.9 backend and clang front end? > > Reed > > > On 04/25/2013 07:03 PM, Feng Liu wrote: >> >> Hi Everybody, >> >> I'm working a project which requires assembly code for mips1 >> architecture for simulation purpose. I checked the latest LLVM3.2 >> version and found that the backend has been removed. I tried to replace >> the MIPS backed in LLVM3.2 by the old one in LLVM2.9 (which contains >> mips1) and adjust some routines to get the backend compiled. However, >> when llc is used to generate the assembly, there are some internal >> faults such as very large physical register id in the register >> allocation phase. >> >> Would anyone to give me some suggestions to bring the mips1 backend to >> the latest LLVM version in this case? Thank you very much! >> >> Best, >> Feng >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev