<div class="gmail_quote">On Wed, Jul 6, 2011 at 5:44 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello,<div><br></div><div>Here are cleaned up and hopefully close to (or completely) ready for commit patches to address PR10183.</div><div><br></div><div>The first patch is the big one, and it wires up stats for the analysis parts of the compile. It's pretty minimal for now, and just covers the stuff that was obvious and that I needed to dig into the problem with -Wuninitialized in this PR. The second patch is then the actual fix to the PR. The fix is essentially just swapping a stack for a queue to move from depth-first to breadth-first. I've tried to make the enqueue relatively efficient, but its not as efficient as the stack. We could tune this by using a proper queue datastructure, but it already is a huge win.</div>


<div><br></div><div>Comments welcome. I've attached the patch files and uploaded the patches to the codereview app:</div><div><a href="http://codereview.appspot.com/4631089/" target="_blank" class="cremed">http://codereview.appspot.com/4631089/</a></div>


<div><a href="http://codereview.appspot.com/4673046/" target="_blank" class="cremed">http://codereview.appspot.com/4673046/</a></div><div><br></div><div>I'm still running some more numbers, but the results look fairly good for other inputs as well. I'm benchmarking compile times for gcc.c and for a selection of inputs from Clang and LLVM's codebase.</div>


</blockquote></div><br><div>Initial results look good:</div><div>gcc.c -fsyntax-only -Wuninitialized time goes from 9.139s to 5.303s (40% speedup)</div><div><br></div><div>However the PR10183 speedup wasn't as much as I had hoped. One of my "slow" measurements must have been slowed down by something else. With the fix its *only* about 75x faster, going from 80.7s to 1.0s. ;]</div>
<div><br></div><div>Will report on some source files which don't have nasty CFGs to contend with soon...</div>