This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, trans-mem, PR 61393] Copy tm_clone field of cgraph_node when cloning the node
- From: Martin Jambor <mjambor at suse dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 6 Aug 2014 16:02:41 +0200
- Subject: Re: [PATCH, trans-mem, PR 61393] Copy tm_clone field of cgraph_node when cloning the node
- Authentication-results: sourceware.org; auth=none
- References: <20140730165605 dot GE14543 at virgil dot suse>
Hi,
On Wed, Jul 30, 2014 at 06:56:05PM +0200, Martin Jambor wrote:
> Hi,
>
> IPA-CP can wreck havoc to transactional memory support as described in
> the summary of the PR in bugzilla. It seems the cause is that IPA-CP
> clones of nodes created by trans-mem do not have their tm_clone flag
> set. For release branches we have decided to simply disable IPA-CP of
> trans-mem clones but for trunk we'd like to avoid this. I am not 100%
> sure that just copying the flag is OK but it seems that it works for
> the provided testcase and nobody from the trans-mem people has
> commented in bugzilla for over a month. So I suggest we commit this
> patch and wait and see if something breaks. Hopefully nothing will.
>
Honza has approved the patch in person and so I have committed it as
revision 213666 after re-testing. Hopefully it does not break
anything, if it does then read the paragraph above and remember it is
not really my fault :-)
Martin
> Bootstrapped and tested on x86_64-linux. OK for trunk?
>
> Thanks,
>
> Martin
>
>
> 2014-07-29 Martin Jambor <mjambor@suse.cz>
>
> PR ipa/61393
> * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
>
> diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
> index f097da8..c04b5c8 100644
> --- a/gcc/cgraphclones.c
> +++ b/gcc/cgraphclones.c
> @@ -423,6 +423,7 @@ cgraph_node::create_clone (tree decl, gcov_type gcov_count, int freq,
> new_node->count = count;
> new_node->frequency = frequency;
> new_node->tp_first_run = tp_first_run;
> + new_node->tm_clone = tm_clone;
>
> new_node->clone.tree_map = NULL;
> new_node->clone.args_to_skip = args_to_skip;