<div class="gmail_quote">On Sat, May 5, 2012 at 11:54 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello folks!<div><br></div><div>I wanted to start the initial review on a pass I've been working on. It's essentially doing hot/cold partitioning, cold region extraction, function splitting, or cold region outlining. Whatever terminology you would like, you get the idea. It's a really simple pass, built entirely out of all the existing infrastructure (some of which I've been cleaning up to let everything fall out this easily).</div>

<div><br></div><div>While this won't do a whole lot of interesting things on its own, I'm preparing to tweak the inline cost heuristics in a way that will allow this to form the essence of partial inlining. We can run this before inlining, splitting large cold regions of code into separate functions, and then be able to inline the remainder more easily.</div>

<div><br></div><div>I haven't run benchmarks, and this patch doesn't turn the pass on, I just want to get initial feedback, and get the code into the shape where I can put it in-tree, and then look at turning it on if benchmarks prove positive.</div>

<div><br></div><div>Comments? Also, is there a better pass name? Duncan had suggested cold-code-extract, not sure if thats better or not...</div>
</blockquote></div><br><div><br></div><div>I am curious whether it has some special handling for setjmp() which can't be extracted to a separate function?</div><div><br></div>