1 /* { dg-do compile } */
2 /* { dg-options "-fgnu-tm -O3 -fdump-tree-tmmark" } */
3 /* Like memopt-12.c but the phi is inside a look which causes
4 it to be converted into a COND_EXPR. */
6 extern int test(void) __attribute__((transaction_safe
));
7 extern int something(void);
8 extern void *malloc (__SIZE_TYPE__
) __attribute__((malloc
,transaction_safe
));
10 struct large
{ int foo
[500]; };
16 p1
= malloc (sizeof (*p1
)*5000);
17 __transaction_atomic
{
22 p2
= malloc (sizeof (*p2
)*6000);
29 /* p3 = PHI (p1, p2) */
35 /* Since both p1 and p2 are thread-private, we can inherit the
36 logging already done. No ITM_W* instrumentation necessary. */
40 return p3
[something()];
43 /* { dg-final { scan-tree-dump-times "ITM_WU" 0 "tmmark" } } */