This post is in continuation to my below post.

My pass is hooked after pass_ipa_pta as already mentioned below.
I have enabled the LTO framework by using the flags "-flto -flto-partition=none".

Without the LTO mode, macro DECL_CLONED_FUNCTION returns the cloned constructor.
However, in the LTO mode this information is not available.

How do I make this information available in the LTO framework?
Is there any other way to get the cloned copy of the constructor "__base_ctor" from "__comp_ctor"?


Regards,
Swati

On Monday 15 September 2014 03:41 PM, Swati Rathi wrote:

I am trying to access the body of a constructor.
My pass is hooked after pass_ipa_pta.

Constructor for a class is invoked as :

    __comp_ctor  (&b);

However the constructor body is dumped as
    __base_ctor  (struct B * const this)
    {
        :
    }

I am not able to access basic blocks from __comp_ctor?
Is __comp_ctor a cloned function of  __base_ctor?

Also assuming it to be a cloned function, I tried to access it using "clones", "clones_of" fields of structure cgraph_node. But these fields does not store anything (or at least for the functions I tried).
What does these fields (clones, clone_of etc.) store?

Will the macro DECL_CLONED_FUNCTION give me __base_ctor from __comp_ctor ? I tried using it but it gives an error, "undefined symbol: _Z22decl_cloned_function_pPK9tree_nodeb".
Kindly tell me way to access the constructor body.

Regards,
Swati


Reply via email to