IPA / Cgraph how to get a real COPY of a function body
Martin Jambor
mjambor@suse.cz
Thu Sep 18 11:38:00 GMT 2008
Hi,
On Tue, Sep 16, 2008 at 12:24:13PM +0200, Martin Schindewolf wrote:
> Dear all,
>
> my current efforts to get some basic support for transactional memory in
> GCC advance slowly but there is one thing I would like to ask because it
> stopped me for days now. What is the best way to do the function cloning in
> order to have the original function and a transactional clone at the same
> time? I tried all sorts of cloning and copying the whole tree using
> functions from Cgraph and Ipa passes but somehow I always end up with a
> cloned declaration node and a function body that is not a copy of the
> original but a pointer to it. At least that is my experience until now.
> Following the general idea of having a copy of the original function early
> in the passes and inserting the necessary instrumentations later when the
> expansion of the GTM primitives is done, this behaviour leads to problems.
> What would be the best way to get a real copy of a function body?
>
I believe cgraph_function_versioning() is what you are looking for.
Have a look at how it is used in ipa-cp.c.
HTH
Martin
More information about the Gcc
mailing list