If the new node is being inlined into another one, NEW_INLINED_TO should be
the outline function the new one is (even indirectly) inlined to.
All hooks will see this in node's inlined_to, when invoked.
- Can be NULL if the node is not inlined. SUFFIX is string that is appended
- to the original name. */
+ Should be NULL if the node is not inlined.
+
+ SUFFIX is string that is appended to the original name, it should only be
+ NULL if NEW_INLINED_TO is not NULL or if the clone being created is
+ temporary and a record about it should not be added into the ipa-clones
+ dump file. */
cgraph_node *create_clone (tree decl, profile_count count,
bool update_original,
vec<cgraph_edge *> redirect_callers,
bool call_duplication_hook,
cgraph_node *new_inlined_to,
ipa_param_adjustments *param_adjustments,
- const char *suffix = NULL);
+ const char *suffix);
/* Create callgraph node clone with new declaration. The actual body will be
copied later at compilation stage. The name of the new clone will be
If the new node is being inlined into another one, NEW_INLINED_TO should be
the outline function the new one is (even indirectly) inlined to. All hooks
- will see this in node's inlined_to, when invoked. Can be NULL if the
+ will see this in node's inlined_to, when invoked. Should be NULL if the
node is not inlined.
+ SUFFIX is string that is appended to the original name, it should only be
+ NULL if NEW_INLINED_TO is not NULL or if the clone being created is
+ temporary and a record about it should not be added into the ipa-clones dump
+ file.
+
If PARAM_ADJUSTMENTS is non-NULL, the parameter manipulation information
will be overwritten by the new structure. Otherwise the new node will
share parameter manipulation information with the original node. */
e->count,
update_original, vNULL, true,
inlining_into,
- NULL);
+ NULL, NULL);
n->used_as_abstract_origin = e->callee->used_as_abstract_origin;
e->redirect_callee (n);
}
{
/* We need original clone to copy around. */
master_clone = node->create_clone (node->decl, node->count,
- false, vNULL, true, NULL, NULL);
+ false, vNULL, true, NULL, NULL, NULL);
for (e = master_clone->callees; e; e = e->next_callee)
if (!e->inline_failed)
clone_inlined_nodes (e, true, false, NULL);
{
node = dyn_cast<cgraph_node *> (nodes[clone_ref])->create_clone (fn_decl,
profile_count::uninitialized (), false,
- vNULL, false, NULL, NULL);
+ vNULL, false, NULL, NULL, NULL);
}
else
{