[LLVMdev] Matching up inlined basic blocks with original basic blocks.

Chandler Carruth chandlerc at google.com
Sun Aug 3 19:18:38 PDT 2014


On Sun, Aug 3, 2014 at 6:36 PM, Jeremy Salwen <jeremysalwen at gmail.com>
wrote:

> Hello All,
>
> I have some data tied to the basic blocks in a function, and after
> inlining that function, I'd like to recover that data in the inlined
> version.  Is there some way to match up the inlined version of the function
> with the original basic blocks?
>

See the code in CloneFunctionInto and CloneAndPruneFunctionInto. This is
what does the actual inlining. You can see how that code tracks the basic
blocks after inlining.

Honestly, the right way to do this architecturally is for us to support
metadata attached to basic blocks (if we don't already?) and then for the
inliner to preserve it when inlining. Then you could use metadata as a
container for your data.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140803/aa804fe8/attachment.html>


More information about the llvm-dev mailing list