aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphclones.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2014-04-16 11:20:43 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2014-04-16 11:20:43 +0200
commitca860d0367382f466936e1da3a46d6258efec822 (patch)
treedd571458b5f17429edbc1f60acb67d6fa5f2ecd4 /gcc/cgraphclones.c
parentfe4e71e4d7e881ec3d08d385f16d9c77fee73bc9 (diff)
downloadgcc-ca860d0367382f466936e1da3a46d6258efec822.zip
gcc-ca860d0367382f466936e1da3a46d6258efec822.tar.gz
gcc-ca860d0367382f466936e1da3a46d6258efec822.tar.bz2
cgraphclones.c (cgraph_create_virtual_clone): Duplicate ipa_transforms_to_apply.
2014-04-16 Martin Jambor <mjambor@suse.cz> * cgraphclones.c (cgraph_create_virtual_clone): Duplicate ipa_transforms_to_apply. (cgraph_function_versioning): Assert that old_node has empty ipa_transforms_to_apply. * trans-mem.c (ipa_tm_create_version): Likewise. * tree-inline.c (tree_function_versioning): Do not duplicate ipa_transforms_to_apply. From-SVN: r209441
Diffstat (limited to 'gcc/cgraphclones.c')
-rw-r--r--gcc/cgraphclones.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 257939c..cd2d73d 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -600,6 +600,9 @@ cgraph_create_virtual_clone (struct cgraph_node *old_node,
}
else
new_node->clone.combined_args_to_skip = args_to_skip;
+ if (old_node->ipa_transforms_to_apply.exists ())
+ new_node->ipa_transforms_to_apply
+ = old_node->ipa_transforms_to_apply.copy ();
cgraph_call_node_duplication_hooks (old_node, new_node);
@@ -971,6 +974,7 @@ cgraph_function_versioning (struct cgraph_node *old_version_node,
cgraph_copy_node_for_versioning (old_version_node, new_decl,
redirect_callers, bbs_to_copy);
+ gcc_assert (!old_version_node->ipa_transforms_to_apply.exists ());
/* Copy the OLD_VERSION_NODE function tree to the new version. */
tree_function_versioning (old_decl, new_decl, tree_map, false, args_to_skip,
skip_return, bbs_to_copy, new_entry_block);