trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.

* trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
        edge.

From-SVN: r182205
This commit is contained in:
Patrick Marlier 2011-12-11 14:02:52 +00:00 committed by Aldy Hernandez
parent 8d2c862dfe
commit 716286f40a
3 changed files with 38 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-12-11 Patrick Marlier <patrick.marlier@gmail.com>
* trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
edge.
2011-12-10 Richard Henderson <rth@redhat.com>
* config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as

View File

@ -0,0 +1,33 @@
// { dg-do compile }
// { dg-options "-fgnu-tm -O3" }
template<typename _InputIterator, typename _Distance> inline void advance(_InputIterator& __i, _Distance __n)
{
if (__n > 0)
while (__n--)
--__i;
else
--__i;
}
void _Rb_tree_increment ();
template<typename _Tp> struct _Rb_tree_iterator
{
typedef _Rb_tree_iterator<_Tp> iterator;
iterator& operator--()
{
_Rb_tree_increment();
}
};
void update ()
{
_Rb_tree_iterator<int>::iterator it;
__transaction_relaxed
{
advance (it, 0);
}
}

View File

@ -4481,7 +4481,6 @@ ipa_tm_transform_calls_redirect (struct cgraph_node *node,
{
*need_ssa_rename_p |=
ipa_tm_insert_gettmclone_call (node, region, gsi, stmt);
cgraph_remove_edge (e);
return;
}