<div>hi,</div>
<div>After reading all the useful comments added by Török I decided to make following changes to my proposal (my points are numbered as 1, 2, 3). <br><br> </div>
<div><span class="gmail_quote">On 3/31/08, <b class="gmail_sendername">Török Edwin</b> <<a href="mailto:edwintorok@gmail.com">edwintorok@gmail.com</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Kumaripaba Miyurusara Atukorala wrote:<br>><br>> hello everybody,<br>><br>> I'm planning to compile a large codebase (Ubuntu) with LLVM compiler<br>
> as my GSoc project 2008. I've given the my proposal below. I'll be<br>> really great full if you can provide your feedback on improving this<br>> proposal.<br>><br><br>As Anton has said, Gentoo might be a better choice for this. But Ubuntu<br>
should be ok too, if you like it better ...</blockquote>
<div>><br>> 1. Project title<br>><br>> Compile programs with LLVM compiler<br>><br>> 2. Abstract<br>><br>> LLVM[1] is a Low Level Virtual Machine. It basically consists of two<br>> modules. They are the LLVM suite which consists of all the tools,<br>
> libraries and header files needed to use the low level virtual machine<br>> and the GCC front end. The GCC front end contains a version of GCC<br>> that compiles C and C++ code in to LLVM bitcode. There is a third,<br>
> optional piece called llvm-test. It is a suite of programs with a<br>> testing harness that can be used to further test LLVM's functionality<br>> and performance.<br>><br>> The main objective of this project is to improve the LLVM<br>
> testsuite[2]. The basic approach followed in achieving this objective<br>> is compiling a large code base that has not yet been compiled with<br>> LLVM and converts the build system to be compatible with build system<br>
> of the LLVM testsuite.<br>><br>> In this project Ubuntu is used as the code base and initially it will<br>> be built using LLVM. Then the build system is tested and files bug<br>> reports for any issues that might hit and help track down problems.<br>
><br>> The development progress can be tracked from here [3].<br>><br>> The complete project proposal is available here [4].<br>><br>><br>><br>> 3. Deliverables<br>><br>> ˇ Updated build system<br>
><br>> ˇ Bugs reported to the bug tracker<br>><br>> ˇ Document (associated work)<br>><br>> ˇ Improved test programs<br>><br>> ˇ A guide for future continuation of this project or similar<br>
> projects<br>><br>><br>><br>> 4. Benefits to the LLVM community<br>><br>> The following will be available to the LLVM community on successful<br>> completion of the project.<br>><br>> ˇ An improved testsuite<br>
><br>> ˇ A guide (document) to follow similar projects in future<br>><br>> 5. Overview<br>><br>> This section contains my work in this project.<br>><br>> The main task is to build the entire Ubuntu distribution in LLVM. This<br>
> will add new testcases and benchmarks for the use of LLVM. A large<br>> testsuite is very important since it provides a lot of coverage of<br>> programs and enables us to spot and improve any problematic areas in<br>
> the compiler.<br>><br><br>Ubuntu has 13000+ packages, even if you count only those in main, there<br>are 3084 source packages.<br>Handling all of them is beyond what a single person can achieve during<br>the summer.<br>
<br>I would say handle 'Essential: yes'/'Build-Essential: yes' packages as a<br>first step (25, resp. 22 packages). Then if time permits try to handle<br>as much from the remaining packages as possible.</div>
<div> </div>
<div> </div>
<div>1) Since I am more comfortable with Ubuntu than with Gentoo, I'll proceed with Ubuntu. But as it is too tedious I'd first handle the Build-Essential package.Then if time permits i will move to rest of the packages. </div>
<div> </div>
<div> </div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">> The procedure followed in this project is discussed below.<br>><br>> Initially the entire Ubuntu distribution will be compiled with the<br>
> LLVM. If the compilation fails then the set of projects that<br>> successfully build with LLVM will be selected. Bugs are filed for the<br>> projects that fail with reduced testcases. If the compilation<br>> succeeds the build system will be converted to be compatible with the<br>
> LLVM Programs testsuite. This can be checked in to SVN and the<br>> automated tester can use it to track progress of the compiler.<br>><br><br>Is the goal only building packages? Or does it include testing built<br>
packages as well?<br>I would suggest at least running testsuites for packages that have them.<br>Also what architecture are you building on? x86 32-bit?</blockquote>
<div> </div>
<div>2) The goal is to build packages + Test the built packages. If my proposal doesn't imply that I will rephrase this paragraph. </div>
<div>Yes,I will be building on X86 32-bit architecture. I'll add that to my proposal.</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">><br>> The next step is to build an image from projects that are successfully<br>> built with LLVM and merge projects built with gcc for those who failed<br>
> in LLVM. Then this image is booted and the problems that encounter<br>> during this process will be tracked down. This process will be<br>> repeated until the entire system is successfully built with LLVM and<br>
> booted as expected.<br>><br>> When testing the code, it can be run with a variety of optimizations,<br>> and with all the back-ends: CBE, llc, and lli.<br>><br>> 6. Project plan<br>><br>> The basic steps in this project are listed below.<br>
><br>> 1. Compile the Ubuntu distribution in gcc and LLVM<br>><br>> 2. If the compilation succeeds convert the build system to LLVM<br>> Program testsuite compatible mode<br>><br>> 3. If fails,<br>
><br>> a. File bugs<br>><br>> b. Compile project by project in LLVM and select the projects<br>> that successfully compiles in LLVM.<br>><br>> c. For the projects that fail in LLVM compile them in gcc<br>
><br>> 4. Build an image from projects successfully built with LLVM and<br>> merge in projects built with gcc in 3.c<br>><br>> 5. Try to boot the image from step 4 and track the problems.<br>><br>
> 6. Continue the process until step 2 works.<br>><br>> According to these steps I can break down this project in to three<br>> major phases<br>><br>><br>><br>><br>><br>> 1^st Phase<br>
><br>> Compile Ubuntu distribution in gcc and LLVM. This is the first most<br>> steps and it will require about 3 weeks.<br>><br><br>Well, Ubuntu is already built by gcc, I think you could focus on<br>building with LLVM. Building with gcc is useful when you want to track<br>
down problems.</blockquote>
<div> </div>
<div>3) Ok, I will focus on building with LLVM. </div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Best regards,<br>--Edwin</blockquote>
<div> </div>
<div>Thank you,</div>
<div>Kumaripaba</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div>