<div dir="ltr">Hello,<span class="gmail-gI"><span></span></span><span class="gmail-gI"><span> </span></span><br><br>I would love to work on a Clang Static Analyzer project during the summer by joining GSoC.<br>Let me introduce myself:<br>I'm Peter Szecsi, a third-year BSc student at Eötvös Loránd University, Budapest. It would be my first Summer of Code project but I have already contributed to clang:<br>During the last summer I have uploaded 2 patches:<br>- An accepted and merged clang-tidy checker [1] <br>- An accepted Clang SA checker [2]<br>Since then I am working on cross translational unit analysis as a university project (and because of that I`ve send some patches about the ASTImporter [3]). Furthermore I participated in the preparations of a talk that was accepted at the EuroLLVM conference. [4]<br>I found SA interesting since I like to work on algorithmic challenges and enjoy participating in programming competitions and there is a lot of algorithms in the Static Analyzer which could be optimized/made more precise by heuristics.<br><br>That is the reason why I would be most interested in project "Implement generalized loop execution modeling" from the Clang SA Open Projects page [5]. Hopefully it is a suitable project for GSoC and it is possible to achieve useful improvements during this time frame. <br>I have read the discussion at the "loop widening" patch [6] and the most important enhancements (and milestones in the project) would be invalidating only the possible modified values. In addition to that I was thinking to have some heuristics which would approximate if a loop is too complex to even use this kind of strategy because it would still lead to invalidate most of the values and result in a lot of false positives. Another small heuristic could be: when we already reached the maximum loop unroll number then in case we are sure that there is only a few loopsteps ahead we could unroll it to the end since probably this algorithm will not consume too much time/memory and the result state will not be much more complex. <br><br>What do you think about these ideas?<br><br>(I have CC'd everyone from the "loop widening" patch discussion.)<br><br>Best regards,<br>Peter<br><br>[1] <a href="https://reviews.llvm.org/D22507">https://reviews.llvm.org/D22507</a><br>[2] <a href="https://reviews.llvm.org/D24246">https://reviews.llvm.org/D24246</a><br>[3] <a href="https://reviews.llvm.org/D29612">https://reviews.llvm.org/D29612</a>, <a href="https://reviews.llvm.org/D30876">https://reviews.llvm.org/D30876</a>, <a href="https://reviews.llvm.org/D30877">https://reviews.llvm.org/D30877</a><br>[4] <a href="http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#7">http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#7</a><br>[5] <a href="http://clang-analyzer.llvm.org/open_projects.html">http://clang-analyzer.llvm.org/open_projects.html</a><br>[6] <a href="https://reviews.llvm.org/D12358">https://reviews.llvm.org/D12358</a><br></div>