Xavian-Anderson Macpherson
2007-Mar-08 23:25 UTC
[LLVMdev] Would it be possible to have the LLVM be seen as an arch for the kernel to compile against?
I posted this question on the llvm channel on irc. I am new to all of this. And I only found out about LLVA as a result of the irc. And please forgive my erroneous terminology. So let me try this as best I can. I want to know if the code of LLVA/LLVM can be used as a virtual processor in configuring the linux kernel? Maybe you have already encountered this and possibly accomplished it as well. I want to use your ISA instead of say an i386 or AMD64. I only recently became aware of your project, so none of this may be new to you. Please be kind in your responses. Thank you, Xavian-Anderson Macpherson Shingoshi -- -------------- next part -------------- A non-text attachment was scrubbed... Name: Shingoshi.vcf Type: text/x-vcard Size: 219 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070308/507ecfe8/attachment.vcf>
John Criswell
2007-Mar-09 00:25 UTC
[LLVMdev] Would it be possible to have the LLVM be seen as an arch for the kernel to compile against?
Xavian-Anderson Macpherson wrote:> I posted this question on the llvm channel on irc. I am new to all of > this. And I only found out about LLVA as a result of the irc. And > please forgive my erroneous terminology. So let me try this as best I > can. > > I want to know if the code of LLVA/LLVM can be used as a virtual > processor in configuring the linux kernel? Maybe you have already > encountered this and possibly accomplished it as well. I want to use > your ISA instead of say an i386 or AMD64. I only recently became aware > of your project, so none of this may be new to you. Please be kind in > your responses.For the purposes of this email, I'll use the following terms (which I believe are correct): LLVM = The instruction set currently implemented in the LLVM Compiler Infrastructure. LLVA-OS = The set of instructions we added to support an OS kernel. LLVA = The combination of LLVM and LLVA-OS. The short answer is yes: we've done research work to create a virtual instruction set (LLVA) that can support Linux (and, in theory, should support other modern OS kernels, too). We have implemented LLVA-OS as a set of library routines for a Pentium 3, ported Linux-2.4.22 to the LLVA instruction set, and are currently using this kernel for our research. Translation from LLVA code to native code occurs ahead of time (i.e. we do not dynamically translate kernel code at the moment, but may in the future). The LLVM component of the instruction set is publicly available as a part of the LLVM Compiler Infrastructure; you can download it off the LLVM website. We have not publicly released the library implementation of the LLVA-OS instructions or the port of Linux 2.4.22 to LLVA. If you're doing a project in which you need the LLVA-OS implementation or the LLVA Linux kernel, please email me off-list and let me know. I can't promise anything, but we might be able to give you a copy. We have papers describing the design of LLVA that might interest you. They are at: http://llvm.org/pubs/2003-10-01-LLVA.html http://llvm.org/pubs/2006-06-18-WIOSCA-LLVAOS.html http://llvm.org/pubs/2006-06-15-VEE-VectorLLVA.html The first one is the first paper describing LLVA; the second describes LLVA-OS, and the third describes some vector instructions. Are you looking at doing a project, and if so, what do you have in mind? Depending upon what you are doing, you may not need the LLVA Linux kernel. The LLVM Compiler Infrastructure is now capable of compiling code with inline assembly, and it can (or almost can) compile native i386 Linux kernels. If you only need to compile Linux with LLVM, everything you need is publicly available. If you have any other questions, please don't hesitate to ask. Regards, John Criswell> > Thank you, > Xavian-Anderson Macpherson > Shingoshi > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Vikram S. Adve
2007-Mar-09 20:16 UTC
[LLVMdev] Would it be possible to have the LLVM be seen as an arch for the kernel to compile against?
[This may be redundant after John's replies but I typed this last night and it has been sitting on my laptop.] That is a good insight. Please see the following paper, it describes how to make such an approach work: http://llvm.org/pubs/2006-06-18-WIOSCA-LLVAOS.html We are also working on another paper describing how to extend this into a complete virtual machine, including memory safety, that can host a complete modern kernel. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.cs.uiuc.edu/ On Mar 8, 2007, at 5:25 PM, Xavian-Anderson Macpherson wrote:> I posted this question on the llvm channel on irc. I am new to all > of this. And I only found out about LLVA as a result of the irc. > And please forgive my erroneous terminology. So let me try this as > best I can. > > I want to know if the code of LLVA/LLVM can be used as a virtual > processor in configuring the linux kernel? Maybe you have already > encountered this and possibly accomplished it as well. I want to > use your ISA instead of say an i386 or AMD64. I only recently > became aware of your project, so none of this may be new to you. > Please be kind in your responses. > > Thank you, > Xavian-Anderson Macpherson > Shingoshi > -- > <Shingoshi.vcf> > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev