<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>I am working on a pass to extract small regions of code to run somewhere else (different node in a cluster). Basically what I need is the ability to isolate a region of code, get its inputs and outputs, create a new function with the extracted code and code aggregating the in and out parameters as structs that can be cast for a “void*”-based interface.</div><div><br></div>It looks like the CodeExtractor (include/Transforms/Util/CodeExtractor.h) does nearly all of this, with the exceptions that I need to generate a different “call”, and I need to be able to separate the outputs and inputs. <div><br></div><div>I think I should be able to do what I want by making modifications after calling the CodeExtractor. But since there was a discussion (<a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-May/049405.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-May/049405.html</a>) about some uses that sound very similar to mine, such as offloading a kernel to an accelerator and branching between the original and extracted code, I wanted to see if any of this functionality had made its way into public branches (or other projects) that I can leverage.</div><div><br></div><div>Thanks!</div></body></html>