[multiple changes]

2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	* trans-mem.c (ipa_tm_transform_clone): Transform functions with
	indirect calls.

testsuite/
2012-05-16  Patrick Marlier  <patrick.marlier@gmail.com>

	* gcc.dg/tm/indirect-2.c: New test.

From-SVN: r187621
This commit is contained in:
Patrick Marlier 2012-05-17 02:57:56 +00:00
parent e2f7d9f4ad
commit 8730965e42
4 changed files with 26 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-05-16 Dave Boutcher <daveboutcher@gmail.com>
Patrick Marlier <patrick.marlier@gmail.com>
* trans-mem.c (ipa_tm_transform_clone): Transform functions with
indirect calls.
2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.

View File

@ -1,3 +1,7 @@
2012-05-16 Patrick Marlier <patrick.marlier@gmail.com>
* gcc.dg/tm/indirect-2.c: New test.
2012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/53217

View File

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-options "-fgnu-tm" } */
void __attribute__((transaction_safe))
foo(void);
void __attribute__((transaction_safe))
set_fn(void)
{
void __attribute__((transaction_safe)) (*fn)(void);
fn = foo;
fn();
}
/* { dg-final { scan-assembler "_ITM_getTMCloneSafe" } } */

View File

@ -4732,7 +4732,7 @@ ipa_tm_transform_clone (struct cgraph_node *node)
/* If this function makes no calls and has no irrevocable blocks,
then there's nothing to do. */
/* ??? Remove non-aborting top-level transactions. */
if (!node->callees && !d->irrevocable_blocks_clone)
if (!node->callees && !node->indirect_calls && !d->irrevocable_blocks_clone)
return;
current_function_decl = d->clone->symbol.decl;