On Fri, Apr 18, 2014 at 01:49:36PM +0200, Jakub Jelinek wrote:
> It reproduces on x86_64 too, I guess the reason why you aren't seeing this
> is that you might have too old assembler that doesn't support
> avx2 instructions (you actually don't need avx2 hw to reproduce, any
> x86_64 or i686 just with gas that supports avx2 should be enough).
> 

I see, with that information I have managed to reproduce the failures
and now am convinced the patch (re-posted below) is indeed the correct
thing to do.  I am going to bootstrap it over the weekend (can't do it
earlier to test these testcases).  Honza, is it OK for trunk if it
passes?

Thanks,

Martin


2014-04-18  Martin Jambor  <mjam...@suse.cz>

        * cgraphclones.c (cgraph_function_versioning): Copy
        ipa_transforms_to_apply instead of asserting it is empty.

Index: src/gcc/cgraphclones.c
===================================================================
--- src.orig/gcc/cgraphclones.c
+++ src/gcc/cgraphclones.c
@@ -974,7 +974,9 @@ cgraph_function_versioning (struct cgrap
     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 ());
+  if (old_version_node->ipa_transforms_to_apply.exists ())
+    new_version_node->ipa_transforms_to_apply
+      = old_version_node->ipa_transforms_to_apply.copy ();
   /* 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);

Reply via email to