This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Detect not-cloned new/delete operators in DCE.
unfortunately I cannot look into the problem now and I don't have my
phone set up to review patches in a sane way, but to answer your
On Tue, Aug 06 2019, Martin Liška wrote:
> On 8/6/19 2:42 PM, Martin Liška wrote:
>> Hm, strange that the ISRA clones don't have n->clone_of set. It's created here:
>> @Martin, @Honza: Why do we not set clone_of in this transformation?
...node->clone_of is set only while a clone created in the true IPA
stages has no body on its own and shares the body with the
original. These clones form a tree and their clone_of is cleared when
they get a body. IPA-SRA is not a true IPA pass and the clones it
creates are created with create_clone_with_body (or similarly named)
method which immediately gives them a body, so setting clone_of would be
wrong. (The new IPA-SRA is a true IPA pass and so its clones have phase
when their clone_of is set).
When an IPA-stage clone gets its body (when it is materialized),
node->former_clone_of gets set to the decl (as opposed to cgraph_node)
of the original node and hopefully create_clone_with_body sets it
too. Can you perhaps use that?
> If I'm correct cgraph_node::clone is used for inline clones only?
IPA-CP also creates clones, it does so by calling
cgraph_node::create_virtual_clone but that also sets clone_of.