Hi,<div><br></div><div>I'm currently taking a class in Parallel Systems. A major part of the class is a project. I asked on #llvm for project ideas, and Chris Lattner suggested a clang/llvm based distcc implementation. This was previously <a href="http://osdir.com/ml/compilers.clang.devel/2008-04/msg00059.html">suggested for a GSoC project</a>, but (according to Chris) has not been implemented yet. I pitched the idea to my professor, and he thought it would be a good project. </div>
<div><br></div><div>Now, I'm investigating what it would take to build such an implementation. I'm curious about the following:</div><div><br></div><div>1. How hard will it be to navigate the LLVM/clang codebase having very little compiler domain knowledge?</div>
<div><br></div><div>2. What stages of the compilation are worth parallelizing(at least for a first step)?</div><div><br></div><div>3. Will it be feasible to implement a basic distcc implementation in 1-2 months? There should be 4 or so people working on the project, but none of us have significant compiler domain knowledge. If not, is there a subset of the problem that's worth working on?</div>
<div><br></div><div>4. Are there any examples of code(preferably in real-world projects) which would lend themselves to parallel compilation which come to mind? At the end of the project, we'll need to document the performance of our work, so I'd like to be thinking about how we'd create (good) presentable results along the way.</div>
<div><br></div><div>5. Where should I start? :). Obviously this is a pretty large undertaking, but is there any documentation that I should look at? Any particular source files that would be relevant?</div><div><br></div>
<div>Any other comments about the project would also be greatly appreciated!</div><div><br></div><div>Thanks!</div><div>Mike</div>